Как я могу получить путь к скомпилированному файлу JAR через код? - PullRequest
0 голосов
/ 29 ноября 2018

Я хочу использовать файлы изображений для моей Java-программы, и для этого мне нужны File объекты.Но у меня есть проблема в том, что когда я строю свой проект, имя проекта имеет .jar в конце имени, что делает объект File наподобие new File("..\\Project\\src\\ImageDirectory\\Image.png") бесполезным, поскольку каталог не существует.

Я обнаружил, что могу технически перебирать все каталоги на компьютере, но я не хочу этого делать, потому что это может занять некоторое время с большим количеством каталогов и жестких дисков.

Итак, есть ли надежный и простой способ получить каталог, в котором находится файл jar?

Моя IDE - InellijIDEA

1 Ответ

0 голосов
/ 29 ноября 2018

Вы можете использовать Путь, чтобы сделать это:

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

Проверьте это, надеюсь, вы можете использовать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...