我正在尝试移植CLI以使用JCommander,但我的应用程序允许像这样在命令行上传递自定义参数:
./App.sh -u myusername -customparam1 customval1
在那种情况下,customparam1
是自定义参数的名称,而customval1
是其值。用户可以传递任意数量的此类参数,并且名称可以是任何名称,例如customparam2
等
JCommander能够解析那些类型的参数吗?我尝试使用Dynamic Parameters,但是有两个问题:
-Dcustomparam1
,其中D
是前缀=
,并且空格不能用作分配字符关于如何使用JCommander解析这些参数的任何建议?
我发现了一个未公开的配置选项acceptUnknownOptions
,可以像这样使用:
JCommander jc = JCommander.newBuilder().addObject(app).acceptUnknownOptions(true).build();
...
List<String> unknowns = jc.getUnknownOptions();