如何抑制Commons CLI的OptionValidator?

时间:2014-06-20 04:49:43

标签: java log4j apache-commons-cli

我想跑

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有&#39;。&#39;。 我怎么能跳过这个?

1 个答案:

答案 0 :(得分:0)

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

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

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

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