Вопрос

В 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).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top