0

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

 ./App.sh -u myusername -customparam1 customval1

在这种情况下customparam1是自定义参数的名称和customval1它的值。用户可以传递任意数量的此类参数,名称可以是任何名称,例如customparam2,等等。

JCommander 是否能够解析这些类型的参数?我尝试使用动态参数,但有两个问题:

  • 它们似乎需要在参数名称之前有一个前缀,例如-Dcustomparam1D前缀在哪里
  • 它们需要一个赋值字符,例如=在名称和值之间,并且空格不能作为赋值字符

关于如何使用 JCommander 解析这些参数有什么建议吗?

4

1 回答 1

0

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

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

于 2020-02-20T19:42:11.887 回答