【问题标题】:How to define help option with other required option?如何使用其他必需选项定义帮助选项?
【发布时间】:2013-11-04 20:56:13
【问题描述】:

我需要帮助选项 (-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 并且只能打印帮助的方法。

【问题讨论】:

    标签: java apache-commons-cli


    【解决方案1】:

    我预先解析命令行寻求帮助:

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

    我还在命令行中的任意位置查找-help,这样如果我忘记了某个东西是-debug 还是-dbg,我就可以将其添加到部分命令行的末尾。

    【讨论】:

      猜你喜欢
      • 2016-08-11
      • 1970-01-01
      • 2014-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多