Java: Как узнать, где находится баночка в Linux - PullRequest
2 голосов
/ 09 сентября 2009

В Linux JVM устанавливает рабочую директорию, равную домашней папке пользователя. В Windows это папка, в которой находится банка. Как я могу найти, где находится банка (из моего приложения) , чтобы изменить рабочий каталог?

Мартейн

Ответы [ 2 ]

5 голосов
/ 09 сентября 2009

Попробуйте получить путь к банке с этим кодом:

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

Затем вы можете удалить часть "* .jar" с помощью:

path=path.substring(0, path.lastIndexOf('/')+1);

У меня была та же проблема с java-игрой, когда мне нужно было открыть файл в том же каталоге, где был jar-файл.

Двойной щелчок по банке в linux не открыл файл. Конечно, вы можете открыть командную строку и изменить dir на jar dir, а затем запустить jar оттуда, но мне нужно было дважды щелкнуть по банке.

0 голосов
/ 09 сентября 2009

В обоих случаях это фактический каталог. Под окнами автоматически фактический каталог устанавливается на базовый каталог jar, если вы запускаете его из проводника. Под linux home-directory - это актуальная директория для вашего GUI. Чтобы установить каталог, напишите короткий shell-скрипт, который устанавливает фактический каталог (с помощью команды cd) и затем выполняет jar (с помощью javaw -jar xyz.jar).

...