2013-11-04 77 views
0

我需要幫助選項(-h)和其他兩個必需的選項(-u,-p)共存在一起..如何使用其他必需選項定義幫助選項?

private static Options buildOptions() { 
    Options options = new Options(); 

    Option help = new Option("h", "help", false, "print this message");  

    Option user = OptionBuilder.hasArg() 
       .isRequired(true) 
       .withArgName("username")     
       .withDescription("use given user name for login") 
       .withLongOpt("user") 
       .create("u"); 

    Option pass = OptionBuilder.hasArg() 
      .isRequired(true) 
      .withArgName("password")     
      .withDescription("use given password for login") 
      .withLongOpt("pass") 
      .create("p"); 

    options.addOption(help); 
    options.addOption(user); 
    options.addOption(pass); 
    return options; 
} 

但是,當我嘗試解析ARGS而不提供所需的參數,我收到MissingOptionException 。我正在尋找一種方法,只能通過-h,並且只能打印出幫助。

回答

0

我預解析命令行尋求幫助:

if ((args.length > 0) && (args[0].matches("^\\s*[-/]{0,2}[Hh](?i:elp)\\s*$"))) { 
    usage(); 
} 

我也找-help在命令行中的任何地方,這樣我可以只使用它釘住到,如果我在一個命令行的一部分結束忘記是否-debug-dbg