我正在编写一个代码,该代码具有一个主开关案例create / start / stop ..,其中输入的参数数量不同。我正在尝试添加commons cli,以便为所有参数提供正确的标签。
我正在尝试实现以下任何一个>
-o start -p new -t abc
-o停止-p old -t abc
-o取消-p old -t abc
-o创建-p新-s zyx -t abc -g 1,23,23 -c“这是评论”
-o comp -n 23 -m 1
或
-开始-p新-t abc
-停止-p old -t abc
-取消-p old -t abc
-create -p new -s zyx -t abc -g 1,23,23 -c“这是评论”
-comp -n 23 -m 1
使用下面的代码,我到达开始/停止/创建是排他性的位置..但是我无法根据开始/停止进行其他选择。
Option o = new Option("create", false, "Create new process");
Option s = new Option("start", false, "Start created process");
Option st = new Option("stop", false, "Stop running process");
OptionGroup optionGroup = new OptionGroup( );
optionGroup.addOption(o);
optionGroup.addOption(s);
optionGroup.addOption(st);
optionGroup.setRequired(true);
options.addOptionGroup( optionGroup );
CommandLineParser parser = new DefaultParser();
HelpFormatter formatter = new HelpFormatter();
try {
cmd = parser.parse(options, args);
if (cmd.hasOption("create"))
{
System.out.println("create selected");
}
} catch (ParseException e) {
System.out.println(e.getMessage());
formatter.printHelp("Test_jar", options);
System.exit(1);
}