Class CmdLineArgumentParser

java.lang.Object
de.stefanfrings.utils.CmdLineArgumentParser

public class CmdLineArgumentParser extends Object
Generic parser for command line arguments in Unix C-Style.

Short options start with a single dash, e.g.: -a -b -c. Long options start with a double dash, e.g.: --help.

The sequence -abc is treated as three options, like -a -b -c. All short and long options may be followed by parameters, e.g. "-i input.txt".

"-" without a character is also a valid option. "--" without a character marks the end of options. Everything after that is treated as parameters.

Usage example:

 public static void main(String args[]) {
     // for the result
     int verbosity=0;
     boolean help=false;
     String importFile=null;

     CmdLineArgumentParser parser=new CmdLineArgumentParser(args);
     String option=parser.getNextOption();
     while (option!=null) {
         if (option.equals("-v") || option.equals("--verbose")) {
             verbosity++; // can be repeated multiple times to increase the verbosity
         }
         else if (option.equals("-h") || option.equals("--help")) {
             help=true;
         }
         else if (option.equals("-i") || option.equals("--import")) {
             // after -i we expect a filename
             importFile=parser.getNextParameter();
             if (importFile==null) {
                 System.err.println("Missing file name after "+option);
             }
         }
         option=parser.getNextOption();
     }
 }
 
Author:
Stefan Frings, http://stefanfrings.de/javautils
  • Constructor Details

    • CmdLineArgumentParser

      public CmdLineArgumentParser(String[] args)
      Constructor
      Parameters:
      args - The arguments of the calling application
  • Method Details

    • getNextOption

      public String getNextOption()
      Gets the next option from the argument list.
      Returns:
      The next option or null if none exists
    • getNextParameter

      public String getNextParameter()
      Gets the next parameter from the argument list.
      Returns:
      The next parameter or null if none exists