JCommander 是否支持没有前缀的动态参数?
Does JCommander Support Dynamic Params With No Prefixes?
我正在尝试移植 CLI 以使用 JCommander,但我的应用程序允许在命令行上传递自定义参数,如下所示:
./App.sh -u myusername -customparam1 customval1
在这种情况下,customparam1
是自定义参数的名称,customval1
是其值。用户可以传递任意数量的此类参数,名称可以是任何名称,例如customparam2
,等等
JCommander 是否能够解析这些类型的参数?我尝试使用 Dynamic Parameters 但有两个问题:
- 它们似乎需要在参数名称前加上前缀,例如
-Dcustomparam1
,其中 D
是前缀
- 它们需要在名称和值之间有一个赋值字符,例如
=
,而 space 将不能用作赋值字符
关于如何使用 JCommander 解析这些参数有什么建议吗?
我发现了一个未记录的配置选项 acceptUnknownOptions
可以像这样使用:
JCommander jc = JCommander.newBuilder().addObject(app).acceptUnknownOptions(true).build();
...
List<String> unknowns = jc.getUnknownOptions();
我正在尝试移植 CLI 以使用 JCommander,但我的应用程序允许在命令行上传递自定义参数,如下所示:
./App.sh -u myusername -customparam1 customval1
在这种情况下,customparam1
是自定义参数的名称,customval1
是其值。用户可以传递任意数量的此类参数,名称可以是任何名称,例如customparam2
,等等
JCommander 是否能够解析这些类型的参数?我尝试使用 Dynamic Parameters 但有两个问题:
- 它们似乎需要在参数名称前加上前缀,例如
-Dcustomparam1
,其中D
是前缀 - 它们需要在名称和值之间有一个赋值字符,例如
=
,而 space 将不能用作赋值字符
关于如何使用 JCommander 解析这些参数有什么建议吗?
我发现了一个未记录的配置选项 acceptUnknownOptions
可以像这样使用:
JCommander jc = JCommander.newBuilder().addObject(app).acceptUnknownOptions(true).build();
...
List<String> unknowns = jc.getUnknownOptions();