【问题标题】:apache commons cli: take the next Option as an argument if not argument is includedapache commons cli:如果不包含参数,则将下一个选项作为参数
【发布时间】:2021-02-22 16:57:02
【问题描述】:

我想传递命令行参数。 但是,在这种情况下,如果“-a”后跟“-b”,我希望解析器接受“-b”作为参数,而不包括 -b 作为选项。有没有简单的方法可以做到这一点? 这就是我所拥有的。

import org.apache.commons.cli.*;
Option remove = new Option("a", true, "a option");
        remove.setRequired(false);
        remove.setOptionalArg(false);
        options.addOption(remove);

Option trim = new Option("b", false, "b option");
        trim.setRequired(false);
        trim.setOptionalArg(true);
        options.addOption(trim);

CommandLineParser parser = new DefaultParser();
CommandLine cmd;

try {
   cmd = parser.parse(options, args);
} catch (ParseException ex) {
   setErrorMessage();
   return;
}

【问题讨论】:

  • prog -a '-b' 不行吗? (注意引号)
  • Duh...我检查了它并没有像我预期的那样工作,我的错:)

标签: java command-line-interface apache-commons apache-commons-cli


【解决方案1】:

我最终以一种相当老套的方式解决了这个问题。 我只会检查“a”后面的内容,如果是“b”,则不添加“b”选项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 2012-07-27
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    • 2016-02-25
    相关资源
    最近更新 更多