我们有什么方法可以通过编程方式找到jar分叉的当前位置?假设我正在从D:/Jars/myjar.jar
执行Jar,那么我可以从代码中获取该路径吗?
@AljoshaBre我试过这个
try {
File file = new File(getClass().getProtectionDomain().getCodeSource().getLocation().toURI().getPath());
System.out.println(file.getAbsolutePath());
} catch (Exception e1) {
e1.printStackTrace();
}
投掷NPE。 :(
但是
System.out.println(getClass().getProtectionDomain().getCodeSource().getLocation().getPath());
仅显示client.jar。不是绝对的道路。它在Jar里面。
答案 0 :(得分:7)
有一种方法:
return new File(ClassA.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath());
答案 1 :(得分:-4)
如果您执行
,请执行java -jar D:/Jars/myjar.jar
new File("afile").getAbsolutePath();
它将返回 D:/ Jars / afile ,你可以只做一个子串。
新文件从jar文件夹创建文件,因此如果您在应用程序中导入此JAR,则此方法无效。
对不起,我刚试过......这不是真的:它会回到你所谓的“java”的路径。命令