私は現在、ライブラリApache Commons CLI 1.3.1
を使用してコマンドライン引数を解析し、実行可能な jar での実行フローを制御しています。これまでのところ、すべてが非常に簡単で、ドキュメントと使用例のページは比較的完全で役に立ちました.
ただし、このライブラリを使用して引数やオプションがないことを検出する方法については、まだ不明です。この状態を検出して、使用法/ヘルプ ステートメントを出力したいと思います。引数配列の長さを確認するだけでこれを回避できましたが、すべてのオプションの存在を確認せずにこの状態を検出する方法がライブラリにあるかどうかを知りたいです。
回避策を残した私のコードは次のとおりです。
public static void main(String[] args)
{
try
{
// create Options object
Options options = new Options();
// add t option
options.addOption("t", false, "display current time");
options.addOption("help", false, "print this message");
CommandLineParser parser = new DefaultParser();
CommandLine cmd = parser.parse(options, args);
if(cmd.hasOption("t")) {
log.debug("Received option t");
// Do something
}
if (args.length <= 0 || cmd.hasOption("help"))
{
// automatically generate the help statement
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp( "java -jar Client.jar <option> <arguments>", options);
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
}