我有以下代码:
public static void main(String [] args) throws ParseException{
Options options = new Options();
options.addOption("g", "delimiter", false, "default delim is ,");
CommandLineParser parser = new PosixParser();
CommandLine cmd = parser.parse(options, args);
String input = cmd.getOptionValue("g");
System.out.println(input);
}
在我的运行时配置中,我有这些args
-g @
我期待看到的是"@"
,但输出是null
?
我缺少什么? 感谢
答案 0 :(得分:1)
由于您的g
选项需要参数,因此将选项中的第三个参数从false
更改为true
可以正常工作。
options.addOption("g", "delimiter", true, "default delim is ,");
我已从false
更改为true
,因为如果在命令行中传递了选项g
则需要参数。它工作正常。
这是来自他们的java doc
addOption方法有三个参数。第一个参数是表示选项的java.lang.String。第二个参数是一个布尔值,指定选项是否需要参数。在布尔选项(有时称为标志)的情况下,参数值不存在,因此传递false。第三个参数是选项的描述。此描述将用于应用程序的使用文本中。