Commons CLI API - Options with Arguments

Q

How to manage options with arguments with Apache Commons CLI API?

✍: FYIcenter.com

A

An option with argument is an option that requires an input arguement. The argument value must be specified immediately after the option name. For example, "-i world", "-input world", "--input world" are alias of a single option with an argument.

An option with an argument can be managed with Apache Commons CLI API in 4 steps:

1. Define Options - An option with an argument can be defined and added to the options collection by long the addOption() method with 4 arguments. The 3rd argument "true" specifies that the option has an argument. For example:

import org.apache.commons.cli.Options;
      options.addOption("i", "input", true, "Input string");

2. Parse Options - An option with an argument can be parsed together with all other options in a single call of CommandLineParser.parse(). For example:

import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.DefaultParser;
         CommandLineParser parser = new DefaultParser();
         CommandLine cmd = parser.parse( options, args);

3. Process Options - A long option can be processed by calling the CommandLine.hasOption() method and the CommandLine.getOptionValue() method. For example:

         } else if (cmd.hasOption("input")) {
            System.out.println("Hello "+cmd.getOptionValue("input"));
         }   

4. Print Options - An option with an argument can be printed out as help message together with all other options. For example:

import org.apache.commons.cli.HelpFormatter;
      HelpFormatter formatter = new HelpFormatter();
      formatter.printHelp("ArgumentOptionTest", options);

 

Commons CLI API - Options with Arguments Example

Commons CLI API - Long Options Example

Using commons-cli.jar in Java Programs

⇑⇑ FAQ for Apache Commons CLI JAR Library

2018-10-20, 389👍, 0💬