2016-06-19 3 views
0

Ich bin mit der folgenden Situation festgefahren. Immer wenn ich versuche, einen Optionswert zu erhalten, wird null zurückgegeben. HierDas Erhalten eines Optionswerts gibt immer 'Null' zurück

ist das Codefragment:

public static Options configureOptions() {  
    Option groupOption = Option.builder("g") 
      .longOpt("group") 
      .required(false) 
      .desc("The group of the user.") 
      .build(); 
    Options allOptions = new Options(); 
    allOptions.addOption(taskOption); 

    return allOptions; 
} 

public static void main(String[] args) throws ParseException { 

    Options options = configureOptions(); 
    CommandLineParser parser = new DefaultParser(); 
    CommandLine commands = parser.parse(options, args); 
    if (commands.hasOption("group")) { 
     System.out.println("group: " + commands.getOptionValue("group")); 
    } 
} 

und läuft mit Option -g Personal dann ist der Ausgang immer null.

java -classpath rsa-1.0.0-SNAPSHOT.jar;c:\Users\user.m2\repository\commons-cli\commons-cli\1.3.1\commons-cli-1.3.1.jar Main -g staff

+0

Was bedeutet '-g staff' andere tun, als was der Ausgang null sein? – dorukayhan

+0

Lesen Sie die Javadoc: https://commons.apache.org/proper/common-cli/javadocs/api-release/index.html: * opt - ** Kurz ** Name der Option * –

Antwort

2

Mit Option.Builder, müssen Sie angeben, dass Ihr groupOption ein Argument hat durch hasArg() verwenden.

Option groupOption = Option.builder("g") 
      .longOpt("group") 
      .required(false) 
      .desc("The group of the user.") 
      .hasArg() // This option has an argument. 
      .build(); 

Javadoc:

https://commons.apache.org/proper/commons-cli/javadocs/api-release/org/apache/commons/cli/Option.Builder.html#hasArg--

Verwendung/Beispiele:

https://commons.apache.org/proper/commons-cli/usage.html

+0

Dies behebt das Problem. :) – user4881671

Verwandte Themen