Java - Язык:Как узнать, где находится jar в Linux
-
05-07-2019 - |
Вопрос
В Linux JVM устанавливает рабочую директорию равной домашней папке пользователя.В Windows это папка, в которой находится jar.Как я могу найти, где находится банка (из моего приложения) можно ли изменить рабочий каталог?
Martijn
Решение
Попробуйте получить путь к jar с помощью этого кода:
String path = YourClass.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath();
Затем вы можете удалить часть "*.jar" с помощью:
path=path.substring(0, path.lastIndexOf('/')+1);
У меня была такая же проблема с java-игрой, когда мне нужно было открыть файл в том же каталоге, что и jar.
Двойной щелчок по jar в Linux не привел к открытию файла.Конечно, вы можете открыть командную строку и изменить dir на jar dir, а затем запустить jar оттуда, но мне нужно было дважды щелкнуть по jar.
Другие советы
В обоих случаях это фактический каталог.В Windows фактический каталог автоматически устанавливается в базовый каталог jar, если вы запускаете его из проводника.В Linux домашний каталог - это фактический каталог для вашего графического интерфейса.Чтобы задать каталог, напишите короткий shell-скрипт, который устанавливает фактический каталог (с помощью cd-команды), а затем выполняет jar (с помощью javaw -jar xyz.jar).