Доступ к файлу из JAR в той же папке - PullRequest
5 голосов
/ 11 сентября 2011

Мне нужно получить доступ (создать и прочитать) файл из файла JAR (исполняемый файл jar), и этот файл должен быть создан в том же каталоге, что и JAR

Я пытался this.getClass().getResource("myFile") но поскольку в банке есть пакеты, она не будет работать ..

я тоже попробовал написать просто File f = new File("myFile"); f.createNewFile();

и это работает, если я выполняю JAR из терминала, но если я выполняю JAR, дважды щелкнув по нему, файл создается в моем домашнем каталоге -.- ''

как я могу получить доступ к файлу, УВЕРЕНЫ, что этот файл находится в ТО ЖЕ директории как файл JAR?

(конечно, получить абсолютный путь к jar тоже можно, так как я могу получить из него родительскую папку)

1 Ответ

7 голосов
/ 11 сентября 2011

Это даст вам полный путь к банке:

String path = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath();

РЕДАКТИРОВАТЬ: извините, когда я писал это был в режиме javascript :).Как было вежливо запрошено, в статическом методе вы можете сделать это:

String path = Me.class.getProtectionDomain().getCodeSource().getLocation().getPath();

(где имя класса Me).

...