2016-06-19 4 views
0

Я застрял в следующей ситуации. Всякий раз, когда я пытаюсь получить значение параметра, он возвращает null.Получение значения параметра всегда возвращает «null»

Вот фрагмент кода:

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")); 
    } 
} 

И работает с опцией -g персонала то выход ВСЕГДА 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

Что '-g staff' делают другие, чем в результате чего выход будет нулевым? – dorukayhan

+0

Прочтите javadoc: https://commons.apache.org/proper/commons-cli/javadocs/api-release/index.html: * opt - ** Short ** имя опции * –

ответ

2

Использование Option.Builder, необходимо указать, что ваш groupOption имеет аргумент с помощью hasArg().

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--

Использование/Примеры:

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

+0

Это исправить проблему. :) – user4881671