我想为我的Java程序使用图像文件,为此,我需要File
对象。但是我有一个问题,就是在我构建项目时,项目名称的名称末尾有一个.jar
,使得new File("..\\Project\\src\\ImageDirectory\\Image.png")
之类的File对象无用,因为该目录不存在。
我发现我可以从技术上遍历计算机上的所有目录,但是我不想这样做,因为在大量目录和硬盘驱动器上可能要花费一些时间。
那么,有没有一种可靠且简单的方法来获取jar文件当前所在的目录?
我的IDE是InellijIDEA
答案 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
检查一下, 希望您可以使用它。