2

我有以下代码:

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);

}

在我的运行时配置中,我有这些参数

-g @

我期望看到的是"@",但输出是null

我错过了什么?谢谢

4

1 回答 1

1

由于您的g选项需要一个参数,因此将选项中的第三个参数从falseto更改为true有效。

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

我已从选项更改falsetrue自选项g如果在命令行中传递选项,它需要一个参数。那么它工作正常。

这是来自他们的 java 文档

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

于 2013-09-11T22:29:45.300 回答