如何使用JCommander添加命令行参数依赖?

时间:2014-06-22 23:22:43

标签: java command-line jcommander args4j

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

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

由于

2 个答案:

答案 0 :(得分:0)

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

JCommander:

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

Args4j:

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

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

答案 1 :(得分:0)

我有完全相同的问题,但看起来args4j已经添加了对多个值的支持:

import org.kohsuke.args4j.spi.StringArrayOptionHandler;

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

应该允许

-p arg1 arg2 ...
相关问题