JavaでCLIを使ってコマンドラインを処理する - TechRepublic

JavaでCLIを使ってコマンドラインを処理する - TechRepublic

出版

davidpetersheimの画像

コマンドライン引数を解析するためのコードを書くことは、依然として必要な場合があります。コマンドライン引数を解析する必要がある場合は、オープンソースのJavaツールキットとコマンドラインインターフェースを使用する方法と理由をご確認ください。

コマンドライン引数を解析するコードを書くのは
、それほど楽しい作業ではありませんが、それでも必要な場合もあります。
次回、コマンドライン引数を調べる必要があり、
少し複雑な状況になったときは、頼りになるオープンソースのJavaツールキットを取り出して
、コマンドラインインターフェース(CLI)を使ってみましょう。

Jakarta Commons は CLI プロジェクトをホストしています。引数が 1 つか 2 つしかない場合は過剰ですが、 アプリケーションの設定の大部分をコマンドラインから取得する場合は
必須です 。


CLI を使用するには、 Options クラスのインスタンスを作成する必要があります。

オプション opt = 新しいオプション();

このOptionsインスタンスを使って、
アプリケーションが受け入れるコマンドライン引数を定義します。
これを行う方法の一つは、OptionsクラスのaddOption()メソッドを使用することです。
アプリケーションが
受け入れ可能なオプションごとに、このメソッドを1回ずつ呼び出します。

opt.addOption(“h”, false, “この
アプリケーションのヘルプを印刷します”);
opt.addOption(“u”, true, “使用するユーザー名”);
opt.addOption(“dsn”, true, “使用するデータソース”);

クラスの引数を定義したら、
CommandLineParser を作成し、
メイン メソッドに渡された文字列配列を解析します。

BasicParser パーサー = 新しい BasicParser();
コマンドライン cl = parser.parse(opt, args);

すべての引数が解析されたので、
パーサーによって返された CommandLine インスタンスを調べて、
ユーザーが指定した引数と値を確認できます。

if ( cl.hasOption('h') ) {
    HelpFormatter f = new
HelpFormatter();
    f.printHelp(“OptionsTip”, opt);
}
else {

    System.out.println(cl.getOptionValue(“u”));

    System.out.println(cl.getOptionValue(“dsn”));
}

上記のように、HelpFormatter クラスを使用すると、 プログラム
の使用情報を自動的に生成できます。

コード全体は次のとおりです。

// OptionsTip.java
をインポートします。org.apache.commons.cli.BasicParser;
をインポートします。org.apache.commons.cli.Options;
をインポートします。org.apache.commons.cli.CommandLine;
をインポートします。org.apache.commons.cli.HelpFormatter;
をインポートします。org.apache.commons.cli.ParseException;

パブリッククラス OptionsTip {
    パブリック静的 void main(String args[])
{
        試す {
            Options
opt = new Options();

            opt.addOption(“h”,
false, “このアプリケーションのヘルプを印刷します”);
            opt.addOption(“u”,
true, “使用するユーザー名”);

            opt.addOption(“dsn”, true, “使用するデータソース”);

            BasicParser
パーサー = 新しい BasicParser();
            コマンドライン
cl = parser.parse(opt, args);


cl.hasOption('h')             の場合、
                HelpFormatter
f を新しい HelpFormatter() に変換します。

                f.printHelp(“オプションのヒント”, opt);
            }

            そうでない場合
{
                System.out.println(cl.getOptionValue(“u”));

               
System.out.println(cl.getOptionValue(“dsn”));
            }

        }
        キャッチ
(ParseException e) {
            e.printStackTrace();

        }
    }
}

CLIを使えば、面倒な作業から解放され、
コマンドライン引数の解析も簡単になります。詳しくは
ドキュメント
をご覧ください。

毎週木曜日に配信される無料のJavaニュースレターでは、このプログラミング言語の潜在能力を最大限に引き出すために必要な洞察と実践的なヒントをお届けします。今すぐ登録して、今すぐ始めましょう!

記事をシェア
davidpetersheimの画像

デビッド・ペータースハイム

Tagged: