首页 > 解决方案 > 如何通过代码获取编译后的jar文件的路径?

问题描述

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

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

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

我的 IDE 是 InellijIDEA

标签: javafilepath

解决方案


您可以使用 Path 来执行此操作:

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

Path 有几种方法可以获取更多信息。

例如,我在桌面中有这个 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

看看,希望你能用。


推荐阅读