Mic*_*gis 4 java command-line apache-commons-cli
我正在尝试使用 OptionBuilder.withArgName( "property=value" )
如果我的选项被称为状态,我的命令行是:
--status p=11 s=22
Run Code Online (Sandbox Code Playgroud)
它只能成功识别第一个参数11,它无法识别第二个参数......
Option status = OptionBuilder.withLongOpt("status")
.withArgName( "property=value" )
.hasArgs(2)
.withValueSeparator()
.withDescription("Get the status")
.create('s');
options.addOption(status);
Run Code Online (Sandbox Code Playgroud)
提前感谢您的帮助
您可以使用传递的命令行选项的简单修改来访问传递的属性
--status p=11 --status s=22
Run Code Online (Sandbox Code Playgroud)
或者用你的短语法
-s p=11 -s s=22
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您只需使用代码即可访问您的属性
if (cmd.hasOption("status")) {
Properties props = cmd.getOptionProperties("status");
System.out.println(props.getProperty("p"));
System.out.println(props.getProperty("t"));
}
Run Code Online (Sandbox Code Playgroud)
如果您需要严格使用语法,则可以手动解析property = value对.在这种情况下,您应该删除.withValueSeparator()调用,然后使用
String [] propvalues = cmd.getOptionValues("status");
for (String propvalue : propvalues) {
String [] values = propvalue.split("=");
System.out.println(values[0] + " : " + values[1]);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2515 次 |
| 最近记录: |