log4j喜欢它在jar文件中的属性?

时间:2014-09-26 14:23:01

标签: java properties log4j executable-jar

我有一个Java应用程序,我直接从可执行jar文件

在Linux上执行
java -cp .:./lib -Duser.timezone=GMT -Dlog4j.debug -jar programName.jar

该程序使用许多其他jar文件,这些文件都在一个目录中,4个属性文件都在另一个目录(当前目录)中。这两个目录都包含在CLASSPATH

足够简单吧。

除了Log4j找不到log4j.properties之外,它会是。我设法找到log4j.properties的唯一方法是将其包含在programName.jar

这不是我想要的,我希望使用log4j.properties与所有其他属性文件驻留在同一目录中,它们位于CLASSPATH中,并且可以按照您的预期找到。

正在使用的其他jar文件是:

  • jdom-2.0.5.jar
  • log4j-1.2.17.jar
  • ojdbc7.jar
  • quartz-2.2.1.jar
  • slf4j-api-1.7.7.jar
  • slf4j-log4j12-1.7.7.jar

我想知道slf4j-log4j12-1.7.7.jar是否会执行某些配置,阻止log4j在查找属性文件时扫描CLASSPATH。我的代码不包含任何旨在指定属性文件位置的指令。

我还没有尝试执行没有-jar选项的程序,我会尝试下一步。

到目前为止,这会不会响铃?

1 个答案:

答案 0 :(得分:1)

为jvm(log4j.configuration)添加一个参数。 e.g:

java -cp .:./lib -Dlog4j.configuration=file:log4j.properties -Duser.timezone=GMT ...

您可能希望看到此answer以获取更多选项。