0

我想跑

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 有 '.'。我怎么能跳过这个?

4

1 回答 1

0

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

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

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

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

于 2014-06-20T06:21:23.153 回答