Commons CLI API - Long Options Example

Q

Where to get a Java example of managing long options with Commons CLI API?

✍: FYIcenter.com

A

Here is good Java example of managing long options with Commons CLI API, ShortOptionTest.java:

// Copyright (c) 2018 FYIcenter.com
import org.apache.commons.cli.Options;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.DefaultParser;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.UnrecognizedOptionException;

public class LongOptionTest {
   public static void main(String[] args) throws Exception {
       
      // Define a long option: --help -help -h
      Options options = new Options();
      options.addOption("h", "help", false, "Print this help message");
      
      try {
         // Parse options
         CommandLineParser parser = new DefaultParser();
         CommandLine cmd = parser.parse(options, args);
         
         // Process options
         if (cmd.hasOption("help")) {
            help(options);
         }
      } catch (UnrecognizedOptionException e) {
         System.out.println("Invalid options: "+e.getOption());
         help(options);
      }
   }

   public static void help(Options options) {
      // Print options
      HelpFormatter formatter = new HelpFormatter();
      formatter.printHelp("LongOptionTest", options);
   }
}

You can compile and run it with commons-cli-1.4.jar:

C:\fyicenter>javac -cp C:\fyicenter\commons-cli-1.4\commons-cli-1.4.jar LongOptionTest.java

C:\fyicenter>java -cp .;C:\fyicenter\commons-cli-1.4\commons-cli-1.4.jar LongOptionTest -h
usage: LongOptionTest
 -h,--help   Print this help message
 
C:\fyicenter>java -cp .;C:\fyicenter\commons-cli-1.4\commons-cli-1.4.jar LongOptionTest --help
usage: LongOptionTest
 -h,--help   Print this help message
 
C:\fyicenter>java -cp .;C:\fyicenter\commons-cli-1.4\commons-cli-1.4.jar LongOptionTest -help
usage: LongOptionTest
 -h,--help   Print this help message

 C:\fyicenter>java -cp .;C:\fyicenter\commons-cli-1.4\commons-cli-1.4.jar LongOptionTest -helps
Invalid options: -helps
usage: LongOptionTest
 -h,--help   Print this help message

 

Commons CLI API - Options with Arguments

Commons CLI API - Long Options

Using commons-cli.jar in Java Programs

⇑⇑ FAQ for Apache Commons CLI JAR Library

2018-10-20, 325👍, 0💬