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

Java 如何使用JCommander添加命令行参数依赖关系?,java,command-line,jcommander,args4j,Java,Command Line,Jcommander,Args4j,我正在使用JCommander进行命令行参数解析。我想添加参数依赖项,但从JCommander文档中,我无法确定它是否受支持。有人试过吗? 例如,java-jar Some.jar-a Foo-b Hola 因此,选项b只能与选项a一起使用 这是。但是,我不能使用args4j,因为它不支持 谢谢是的,您可以使用args4j,它确实支持多个值 JCommander: @Parameter(names={"--length", "-l"}) int length; Args4j: @Option(

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

这是。但是,我不能使用args4j,因为它不支持


谢谢

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

JCommander:

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

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

关于验证和依赖性:当然,您可以手动执行。这不是太多的编程。如果未给出a,则忽略选项b;如果a为非空但b为空,则引发异常。

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

import org.kohsuke.args4j.spi.StringArrayOptionHandler;

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