2011-01-14 20 views
20

Estoy usando la CLI de Apache Commons para manejar argumentos de línea de comandos en Java.Cómo recuperar parámetros cuando se utiliza la biblioteca CLI de Apache Commons

He declarado las opciones a y b y puedo acceder al valor usando CommandLine.getOptionValue().

Usage: myapp [OPTION] [DIRECTORY] 

Options: 
-a  Option A 
-b  Option B 

¿Cómo declaro y accedo a la variable DIRECTORIO?

+0

¿Cómo se hace la impresión '' HelpFormatter' [OPCIÓN] [directorio] '? –

Respuesta

29

utilizar el siguiente método:

CommandLine.getArgList() 

que devuelve lo que quede después de las opciones que se hayan procesado.

+0

¿Qué pasa si el número de argumentos para todas las opciones es ilimitado? – Zangdak

6

Puede ser mejor utilizar otra Opción (-d) para identificar el directorio que sea más intuitivo para el usuario.

O El código siguiente muestra conseguir la lista de argumentos restante

public static void main(final String[] args) { 
    final CommandLineParser parser = new BasicParser(); 
    final Options options = new Options(); 
    options.addOption("a", "opta", true, "Option A"); 
    options.addOption("b", "optb", true, "Option B"); 

    final CommandLine commandLine = parser.parse(options, args); 

    final String optionA = getOption('a', commandLine); 
    final String optionB = getOption('b', commandLine); 

    final String[] remainingArguments = commandLine.getArgs(); 

    System.out.println(String.format("OptionA: %s, OptionB: %s", optionA, optionB)); 
    System.out.println("Remaining arguments: " + Arrays.toString(remainingArguments)); 
} 

public static String getOption(final char option, final CommandLine commandLine) { 

    if (commandLine.hasOption(option)) { 
     return commandLine.getOptionValue(option); 
    } 

    return StringUtils.EMPTY; 
} 
+1

Para eso, agregaría que HelpFormatter se usaría para imprimir el argumento [DIRECTORIO]: 'HelpFormatter formatter = new HelpFormatter();' 'formatter.printHelp (" myapp [OPTION] [DIRECTORIO] ", opciones); ' – Blazes

Cuestiones relacionadas