我正在使用 JCommander 进行命令行参数解析。我想添加参数依赖项,但是从 JCommander 文档中,我无法确定它是否受支持。有人试过吗?例如 java -jar Some.jar -a Foo -b Hola 所以,选项 -b 只能与选项 -a 一起使用。
这在 args4j 中得到支持。但是,我不能使用 args4j 因为它不支持多个值作为 JCommander。
谢谢
我正在使用 JCommander 进行命令行参数解析。我想添加参数依赖项,但是从 JCommander 文档中,我无法确定它是否受支持。有人试过吗?例如 java -jar Some.jar -a Foo -b Hola 所以,选项 -b 只能与选项 -a 一起使用。
这在 args4j 中得到支持。但是,我不能使用 args4j 因为它不支持多个值作为 JCommander。
谢谢
我遇到了完全相同的问题,但看起来 args4j 添加了对多个值的支持:
import org.kohsuke.args4j.spi.StringArrayOptionHandler;
@Option(name = "-p", handler = StringArrayOptionHandler.class, required = true)
private List<String> list;
这应该允许
-p arg1 arg2 ...
是的,您可以使用 args4j,它确实支持多个值。
指挥官:
@Parameter(names={"--length", "-l"})
int length;
args4j:
@Option(name = "-l", aliases = { "--length" })
int length;
关于验证和依赖:当然,您可以手动执行此操作。这不是太多的编程。如果 a 也没有给出,则忽略选项 b,或者如果 a 为非 null 但 b 为 null,则抛出异常。