2014-04-11 110 views
0

我有一个目录/ release /包含我的application.jar以及log4j2.xml文件。当我使用java -jar application.jar运行应用程序时,它不会拾取log4j2.xml配置文件。它的工作原理,如果我明确指定,像这样从与jar文件相同的目录加载log4j2.xml文件

java -Dlog4j.configurationFile=log4j2.xml -jar application.jar

XML文件的位置,有没有一种方法,我可以教我的程序作为罐子在于能够始终从同一目录拿起配置文件?我想让程序尽可能简单,并且不需要用户在运行应用程序时设置一个尴尬的系统属性。

回答

1

没有系统属性,log4j-2.0将在类路径中查找log4j2.xml文件。因此,我正在阅读您的问题:我如何使用java -jar application.jar启动我的应用程序并在类路径中包含log4j2.xml文件?

这取决于您的application.jar文件是否在其清单中有Class-Path条目(http://docs.oracle.com/javase/8/docs/technotes/tools/windows/findingclasses.html#sthref8)。

当然,您可以简单地将log4j2.xml文件包含在application.jar文件中。 如果您想避免这种情况,可以将包含log4j2.xml文件的目录添加到JAR文件清单中的Class-Path条目。 (这可能是“。”当前目录。)

+0

谢谢你的工作! – PaulK