首页 > 解决方案 > JCommander 是否支持不带前缀的动态参数?

问题描述

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

 ./App.sh -u myusername -customparam1 customval1

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

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

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

标签: javacommand-line-interfacecommand-line-argumentsjcommander

解决方案


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

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


推荐阅读