始终获取选项值 return 'null'

Getting an option value always return 'null'

我遇到了以下情况。每当我尝试获取选项值时,它 returns 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.3.1\commons-cli-1.3.1.jar Main -g staff

使用 Option.Builder,您需要使用 hasArg().

指定您的 groupOption 有参数
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--

Usage/Examples:

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