我正在使用 log4j 进行日志记录。为了配置一切,我在 jar 文件之外创建了一个 log4j.xml。它工作得很好,但是当 jar 文件不是从 log4j.xml 所在的同一目录执行时会出现问题。
示例:jar 文件位于 /opt/myapp/test.jar
user@host:/opt/myapp$ java -jar test.jar
效果很好,但是当我尝试这个时:
user@host:~$ java -jar /opt/myapp/test.jar
我收到一个找不到 log4j.xml 的错误。那是因为它正在我当前的工作目录中寻找它。
我还有一个在我的应用程序中使用的属性文件。该文件位于 jar 文件所在的 config/ 目录中,因此在此示例中为 /opt/myapp/config。尝试加载配置文件时会出现与上述相同的问题。
如何让 Java 从 jar 文件所在的目录加载文件(无论从哪里执行 jar)?
可能很容易,但我无法弄清楚:(