JCommander是否支持不带前缀的动态参数?

问题描述 投票:0回答:1

我正在尝试移植CLI以使用JCommander,但我的应用程序允许像这样在命令行上传递自定义参数:

 ./App.sh -u myusername -customparam1 customval1

在那种情况下,customparam1是自定义参数的名称,而customval1是其值。用户可以传递任意数量的此类参数,并且名称可以是任何名称,例如customparam2

JCommander能够解析那些类型的参数吗?我尝试使用Dynamic Parameters,但是有两个问题:

  • 它们似乎在参数名称之前需要前缀,例如-Dcustomparam1,其中D是前缀
  • 它们在名称和值之间需要一个分配字符,例如=,并且空格不能用作分配字符

关于如何使用JCommander解析这些参数的任何建议?

java command-line-interface command-line-arguments jcommander
1个回答
0
投票

我发现了一个未公开的配置选项acceptUnknownOptions,可以像这样使用:

JCommander jc = JCommander.newBuilder().addObject(app).acceptUnknownOptions(true).build();
...
List<String> unknowns = jc.getUnknownOptions();

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.