如何获取已执行jar的位置?我找到了很多解决方案,但它们都不适合我。当我在我的IDE中运行它们一切都很好。只要我构建一个jar文件并使用java -jar myapp.jar
运行它,输出就像/.../myapp.jar!/foo/bar
我将在myapp.jar
中运行代码 - 而不是在任何库中。
jar的位置:/home/me/dev/myapp/myapp.jar
预期输出:/home/me/dev/myapp/
我不想要像System.getProperty("user.dir");
为什么我要这样做:
我想在实际jar旁边存储和加载文件。像
/home/me/bin/myapp/myapp.jar
/home/me/bin/myapp/license.key
我想避免将文件存储到像System.getProperty("user.home");
这样的通用文件夹中。而且我不想将文件存储在jar文件中。
答案 0 :(得分:0)
java.nio.file.Paths.get(".").toAbsolutePath()
将返回当前目录的绝对路径。
答案 1 :(得分:0)
我在这些方面使用了一些东西:
[YourClass] .class.getProtectionDomain()。getCodeSource()。的getLocation()。的getPath()
此致