我想解析以下格式的命令:mycmd source dest
。
如果找不到源或目标,我希望解析器失败。如何使用Apache Commons CLI将尾部args定义为选项的一部分?
我找不到办法。我觉得这是无法完成的。如果可以定义结尾的args,则无需手动将它们添加到帮助中-如this solution中所述。
最佳答案
Commons-cli当前不支持尾随参数的特殊处理。您现在需要自己解析尾随参数,即使用类似以下的内容:
String[] trailing = cmdLine.getArgs();
if(trailing.length < 2) {
throw new IllegalArgumentException("Need at least 3 arguments <src> [<src> ...] <dest>");
}
String dest = trailing[trailing.length-1];
String[] sources = Arrays.copyOf(trailing, trailing.length-1);