如何通过代码获取编译的jar文件的路径?

时间:2018-11-29 19:31:32

标签: java file path

我想为我的Java程序使用图像文件,为此,我需要File对象。但是我有一个问题,就是在我构建项目时,项目名称的名称末尾有一个.jar,使得new File("..\\Project\\src\\ImageDirectory\\Image.png")之类的File对象无用,因为该目录不存在。

我发现我可以从技术上遍历计算机上的所有目录,但是我不想这样做,因为在大量目录和硬盘驱动器上可能要花费一些时间。

那么,有没有一种可靠且简单的方法来获取jar文件当前所在的目录?

我的IDE是InellijIDEA

1 个答案:

答案 0 :(得分:1)

您可以使用Path来做到这一点:

Path path = Paths.get(YourMainClass.class.getProtectionDomain().getCodeSource().getLocation().toURI());

路径有几种获取更多信息的方法。

例如,我在桌面中有此JAR,并且正在打印:

System.out.println(path);
System.out.println(path.getRoot());
System.out.println(path.getParent());

结果是:

java -jar C:\Users\gmunozme\Desktop\Test.jar
C:\Users\gmunozme\Desktop\Test.jar
C:\
C:\Users\gmunozme\Desktop

检查一下, 希望您可以使用它。