I would like to define an Apache Commons CLI parser that includes named arguments and positional arguments.
program [-a optA] [-b optB] [-f] pos1 pos2
How do I validate pos1 and pos2?
One a quick read of the documentation, I was not aware the the CommandLine class would provide access to the remaining positional parameters.
After parsing the Options passed on the command line, the remaining arguments are available in the CommandLine.getArgs() method.
public static void main(String[] args) {
DefaultParser clParse = new DefaultParser();
Options opts = new Options();
opts.addOption("a", true, "Option A");
opts.addOption("b", true, "Option B");
opts.addOption("f", false, "Flag F");
CommandLine cmdLine = clParse.parse(opts, args);
System.out.println(cmdLine.getArgs().length);
}
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