我正在使用JCommander进行命令行参数解析。我想添加参数依赖项,但是从JCommander文档中,我无法确定它是否支持。有人试过吗? 例如,java -jar Some.jar -a Foo -b Hola 因此,选项-b只能附带选项-a。
这是supported in args4j。但是,我无法使用args4j,因为它不支持multiple values as JCommander。
由于
答案 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 ...