У многих людей возникает проблема, заключающаяся в том, что когда они запускают JAR-приложение из nautilus, CWD (текущий рабочий каталог) устанавливается в их домашнюю папку (а не в папку, в которой находится JAR). Это ошибка в Nautilus, не особенно в Linux.
Если вы знаете трюк, облегчающий правильный запуск Jar вместо того, чтобы открывать терминал и вручную набирать там java -jar myJar.jar
, опубликуйте его ниже.
Спасибо
Краткий пример кода проблемы:
File f = new File("ASimpleTextFile.txt");
System.out.println(f.getAbsolutePath());
В Windows это печатает: [The Path To The Jar]/ASimpleTextFile.txt
Но в Linux это печатает: /home/[yourName]/ASimpleTextFile.txt
Это очень плохая идея, потому что мы часто используем относительные пути к файлам конфигурации. Таким образом, они не будут найдены, потому что файл указывает на домашнюю папку.
chdir
на Java, поэтому идея состоит в том, что ваша программа должна быть независима от cwd. - person Chris Jester-Young   schedule 11.11.2010