Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从与jar文件相同的目录加载log4j2.xml文件_Java_Log4j_Log4j2 - Fatal编程技术网

Java 从与jar文件相同的目录加载log4j2.xml文件

Java 从与jar文件相同的目录加载log4j2.xml文件,java,log4j,log4j2,Java,Log4j,Log4j2,我有一个目录/release/包含application.jar和log4j2.xml文件。当我使用java-jar application.jar运行应用程序时,它不会获取log4j2.xml配置文件。如果我像这样显式地指定xml文件的位置,它就会起作用 java-Dlog4j.configurationFile=log4j2.xml-jar application.jar 是否有一种方法可以指示我的程序始终从jar所在的同一目录中提取配置文件?我希望程序尽可能简单,并且在运行应用程序时不要求

我有一个目录/release/包含application.jar和log4j2.xml文件。当我使用
java-jar application.jar
运行应用程序时,它不会获取log4j2.xml配置文件。如果我像这样显式地指定xml文件的位置,它就会起作用

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


是否有一种方法可以指示我的程序始终从jar所在的同一目录中提取配置文件?我希望程序尽可能简单,并且在运行应用程序时不要求用户设置不合适的系统属性。

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

这取决于application.jar文件的清单()中是否有
类路径

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