我坚持以下情况。每当我尝试获取选项值时,它都会返回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
答案 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:
用法/示例: