I have stuck with the following situation. Whenever I try to get an option value, it returns null.
Here is the code fragment:
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"));
}
}
And running with option -g staff then the output is ALWAYS 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
Using Option.Builder
, you need to specify that your groupOption
has an argument by using 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--
Usage/Examples:
https://commons.apache.org/proper/commons-cli/usage.html
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With