Java: Command Line Arguments Parsing

(Last Updated On: )

This tutorial will guide you through how to do command line argument parsing easily. For this example we will use Commons-Cli package.

pom.xml

  1. <properties>
  2. <commonscli.version>1.4</commonscli.version>
  3. </properties>
  4.  
  5. <dependencies>
  6. <!-- https://mvnrepository.com/artifact/commons-cli/commons-cli -->
  7. <dependency>
  8. <groupId>commons-cli</groupId>
  9. <artifactId>commons-cli</artifactId>
  10. <version>${commonscli.version}</version>
  11. </dependency>
  12. </dependencies>

Imports

  1. import org.apache.commons.cli.CommandLine;
  2. import org.apache.commons.cli.CommandLineParser;
  3. import org.apache.commons.cli.DefaultParser;
  4. import org.apache.commons.cli.HelpFormatter;
  5. import org.apache.commons.cli.Option;
  6. import org.apache.commons.cli.Options;
  7. import org.apache.commons.cli.ParseException;

Main

  1. public static void main(String[] args) {
  2. final Options options = new Options();
  3. Option startOption = new Option("s", "start", true, "Start the process.");
  4. startOption.setRequired(true);
  5. options.addOption(startOption);
  6.  
  7. final HelpFormatter help = new HelpFormatter();
  8. final CommandLineParser parser = new DefaultParser();
  9. CommandLine cmd = null;
  10.  
  11. try {
  12. cmd = parser.parse(options, args);
  13. } catch (final ParseException e) {
  14. help.printHelp("java -jar myApp.jar", "My Header", options, "-s must be specified");
  15. return;
  16. }
  17.  
  18. final boolean doStart = Boolean.valueOf(cmd.getOptionValue("s"));
  19.  
  20. if (doStart) {
  21. //Do my work here
  22. }
  23. }