获取选项值始终返回' null'

时间:2016-06-19 17:04:14

标签: java command-line-interface apache-commons

我坚持以下情况。每当我尝试获取选项值时,它都会返回null。

这是代码片段:

    public static Options configureOptions() {      
    Option groupOption = Option.builder("g")
            .longOpt("group")
            .required(false)
            .desc("The group of the user.")
            .build();
    Options allOptions = new Options();
    allOptions.addOption(taskOption);

    return allOptions;
}

public static void main(String[] args) throws ParseException {

    Options options = configureOptions();
    CommandLineParser parser = new DefaultParser();
    CommandLine commands = parser.parse(options, args);
    if (commands.hasOption("group")) {
        System.out.println("group: " + commands.getOptionValue("group"));
    }
}

使用选项 -g staff 运行,输出始终为null

java -classpath rsa-1.0.0-SNAPSHOT.jar;c:\Users\user.m2\repository\commons-cli\commons-cli\1.3.1\commons-cli-1.3.1.jar Main -g staff

1 个答案:

答案 0 :(得分:8)

使用Option.Builder,您需要使用groupOption指定您的hasArg()有参数。

Option groupOption = Option.builder("g")
            .longOpt("group")
            .required(false)
            .desc("The group of the user.")
            .hasArg() // This option has an argument.
            .build();

的Javadoc:

https://commons.apache.org/proper/commons-cli/javadocs/api-release/org/apache/commons/cli/Option.Builder.html#hasArg--

用法/示例:

https://commons.apache.org/proper/commons-cli/usage.html