无法解析java中的可选选项

时间:2013-09-11 22:20:13

标签: java

我有以下代码:

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

我缺少什么? 感谢

1 个答案:

答案 0 :(得分:1)

由于您的g选项需要参数,因此将选项中的第三个参数从false更改为true可以正常工作。

options.addOption("g", "delimiter", true, "default delim is ,");

我已从false更改为true,因为如果在命令行中传递了选项g则需要参数。它工作正常。

这是来自他们的java doc

  

addOption方法有三个参数。第一个参数是表示选项的java.lang.String。第二个参数是一个布尔值,指定选项是否需要参数。在布尔选项(有时称为标志)的情况下,参数值不存在,因此传递false。第三个参数是选项的描述。此描述将用于应用程序的使用文本中。