Option
( apache.commons.cli ) をコマンドおよびサブコマンドとして使用したい。
元。
- myprogram ジョブ -dryrun
- myprogram ジョブ -更新
- myprogram ジョブ -update -dryrun
これを行う最善の方法は何ですか?
簡単なプログラムで試しました:
public static void main(String[] args) throws ParseException {
test("job", "-update"); //works fine
test("job", "-dryrun"); //works fine
test("job", "-update", "-dryrun"); // doesn't work
}
public static void test(String... args) throws ParseException {
GnuParser parser = new GnuParser();
Options options = new Options();
OptionGroup option = new OptionGroup();
option.addOption(new Option("dryrun", "dryrun"));
option.addOption(new Option("update", "update"));
options.addOptionGroup(option);
parser.parse(options, args);
}
エラー:
test("job", "-update", "-dryrun");
fails with, Exception in thread "main" org.apache.commons.cli.AlreadySelectedException: The option 'dryrun' was specified but an option from this group has already been selected: 'update'