4

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

在 args4j 中得到支持。但是,我不能使用 args4j 因为它不支持多个值作为 JCommander

谢谢

4

2 回答 2

0

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

import org.kohsuke.args4j.spi.StringArrayOptionHandler;

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

这应该允许

-p arg1 arg2 ...
于 2017-12-01T10:17:07.583 回答
0

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

指挥官:

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

args4j:

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

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

于 2016-05-31T07:33:17.513 回答