gpt4 book ai didi

Java可执行jar类路径混淆

转载 作者:行者123 更新时间:2023-11-29 08:55:09 25 4
gpt4 key购买 nike

我已经阅读了关于可执行 jar 并将当前路径添加到类路径的答案 here .

我将插件添加到 pom.xml,我检查了这一行实际上添加到 MANIFEST.MF:

Class-Path: .

现在根据log4j2文档,它将在当前类路径中查找 log4j2.xml 文件。

我的理解是,如果我将 log4j2.xml 放在与 jar 相同的目录中,并在该目录中执行 jar,那么它会找到 log4j2.xml。

但是,它只在我添加

时找到它
-Dlog4j.configurationFile=/path/to/file

到 java 命令。

我错过了什么?

坦率地说,忘记类路径的东西并在 java 命令行中添加一堆 -D 术语似乎更容易。

最佳答案

我认为 . 被评估为相对于 java 进程当前工作目录的当前目录(当进程由操作系统启动时,它们被赋予一个工作目录) .您可以通过检查程序中的系统属性 user.dir 查看运行程序的 JVM 的工作目录。

# current directory is /home/rick
$pwd
/home/rick
# the code archive is not in the current wd
$ls /home/rick/myapps
app.jar
# the conf file is
$ls .
log4j2.xml
# This will work as expected
$java -jar /home/rick/myapps/app.jar

严格来说,JAR 甚至不需要在您的文件系统上:例如,它可以从网络上下载并在内存中提取。

关于Java可执行jar类路径混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20672264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com