18

次のように 2 つのオプションが必要に応じて定義されている場合:

 public static void main(String [] args){
      Options options= new Options();
      Option  inputFileOp=Option.builder("i").longOpt("input").hasArg().desc("Input file").argName("file").required().build();
        options.addOption(inputFileOp);

      Option outputFileOp=Option.builder("o").longOpt("output").hasArg().desc("Output file").argName("file").required().build();
        options.addOption(outputFileOp);

とヘルプオプション

    Option helpOp =new Option("h",false,"Show Help");
    helpOp.setLongOpt("help");
    helpOptions.addOption(helpOp);

とパーサー

DefaultParser parser = new DefaultParser();
CommandLine cmd=parser.parse(options,args);

if(cmd.hasOption(helpOp.getOpt())){
        HelpFormatter formatter = new HelpFormatter();
        formatter.printHelp( "MyApp.sh", options );
        System.exit(0);
    }

}

ユーザーがたとえば myApp -h .. と入力すると、ヘルプ データを出力したいときに、必要なオプションが欠落しているという解析ステップで例外が発生します。

これらのオプションを必須として宣言したまま、ヘルプの呼び出しを許可するにはどうすればよいですか?

4

3 に答える 3