CLI de Apache Commons - Opción de argumento

Una opción de Argumento se representa en una línea de comando por su nombre y su valor correspondiente. Por ejemplo, si la opción está presente, el usuario debe pasar su valor. Considere el siguiente ejemplo, si estamos imprimiendo registros en algún archivo, para lo cual queremos que el usuario ingrese el nombre del archivo de registro con la opción de argumento logFile.

Ejemplo

CLITester.java

import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.DefaultParser;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;

public class CLITester {
   public static void main(String[] args) throws ParseException {
      Options options = new Options();
      Option logfile = Option.builder()
         .longOpt("logFile")
         .argName("file" )
         .hasArg()
         .desc("use given file for log" )
         .build();

      options.addOption(logfile);
      CommandLineParser parser = new DefaultParser();
      CommandLine cmd = parser.parse( options, args);
      
      // has the logFile argument been passed?
      if(cmd.hasOption("logFile")) {
         //get the logFile argument passed
         System.out.println( cmd.getOptionValue( "logFile" ) );
      }
   }
}

Salida

Ejecute el archivo, mientras pasa --logFile como opción, nombre del archivo como valor de la opción y vea el resultado.

java CLITester --logFile test.log
test.log