【问题标题】:How to add command line parameter dependency using JCommander?如何使用 JCommander 添加命令行参数依赖项?
【发布时间】:2014-08-12 22:45:12
【问题描述】:

我正在使用 JCommander 进行命令行参数解析。我想添加参数依赖项,但是从 JCommander 文档中,我无法确定它是否受支持。有人试过吗? 例如,java -jar Some.jar -a Foo -b Hola 因此,选项 -b 只能与选项 -a 一起使用。

这是supported in args4j。但是,我不能使用 args4j,因为它不支持multiple values as JCommander

谢谢

【问题讨论】:

    标签: java command-line jcommander args4j


    【解决方案1】:

    我遇到了完全相同的问题,但似乎 args4j 增加了对多个值的支持:

    import org.kohsuke.args4j.spi.StringArrayOptionHandler;
    
    @Option(name = "-p", handler = StringArrayOptionHandler.class, required = true)
    private List<String> list;
    

    应该允许

    -p arg1 arg2 ...
    

    【讨论】:

      【解决方案2】:

      是的,你可以使用 args4j,它确实支持多个值。

      JCommander:

      @Parameter(names={"--length", "-l"})
      int length;
      

      Args4j:

      @Option(name = "-l", aliases = { "--length" })
      int length;
      

      关于验证和依赖:当然,您可以手动执行此操作。这不是太多的编程。如果 a 也没有给出,则忽略选项 b,或者如果 a 为非 null 但 b 为 null,则抛出异常。

      【讨论】:

        猜你喜欢
        • 2017-08-13
        • 1970-01-01
        • 1970-01-01
        • 2014-08-25
        • 2018-03-12
        • 2014-09-21
        • 2012-07-30
        • 1970-01-01
        • 2013-06-22
        相关资源
        最近更新 更多