【问题标题】:Does JCommander Support Dynamic Params With No Prefixes?JCommander 是否支持不带前缀的动态参数?
【发布时间】:2020-06-05 04:35:30
【问题描述】:

我正在尝试移植 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】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-07
      • 1970-01-01
      • 2022-10-14
      • 1970-01-01
      • 2016-11-12
      • 2014-02-28
      • 2014-02-04
      • 1970-01-01
      相关资源
      最近更新 更多