【问题标题】:How to suppress OptionValidator of Commons CLI?如何抑制 Commons CLI 的 OptionValidator?
【发布时间】:2014-06-20 04:49:43
【问题描述】:

我想跑步

java -jar application.jar -Dlog4j.configuration="path/to/log4j.xml"

application.jar 使用 Commons CLI 运行,需要外部 log4j.xml 文件。

当我运行这个命令时,我得到以下异常:

java.lang.IllegalArgumentException: opt contains illegal character value '.'
    at org.apache.commons.cli.OptionValidator.validateOption(OptionValidator.java:73)
    at org.apache.commons.cli.Option.<init>(Option.java:123)
    at org.apache.commons.cli.Options.addOption(Options.java:131)
    at org.apache.commons.cli.Options.addOption(Options.java:114)

因为 Dlog4j.configuration 有 '.'。 我怎样才能跳过这个?

【问题讨论】:

    标签: java log4j apache-commons-cli


    【解决方案1】:

    通过将有问题的参数放在-jar前面解决。

    java -Dlog4j.configuration=file:\C:path\to\log4j.xml -jar application.jar
    

    然后 Common CLI 会忽略它。 一旦我尝试了它就失败了,我放弃了,但这是由没有文件协议的路径引起的,file:\

    我仍然不知道 Common CLI 是否可以跳过选项验证。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-21
      • 1970-01-01
      • 2023-03-24
      • 2015-08-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多