Вы, вероятно, работаете в Linux. Потому что в Linux, когда вы запускаете приложение из JAR, рабочий каталог устанавливается в вашу домашнюю папку (/ home / yourname /). Когда вы запускаете его из Eclipse, рабочий каталог устанавливается в папку проекта.
Чтобы убедиться, что вы действительно знаете, что файлы, которые вы используете, находятся в папке проекта или в папке, где находится ваш JAR, вы можете использовать этот фрагмент кода, чтобы узнать, где находится JAR, а затем использовать * 1003. * Конструктор для создания ваших файлов:
// Find out where the JAR is:
String path = YourClass.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath();
path = path.substring(0, path.lastIndexOf('/')+1);
// Create the project-folder-file:
File root = new File(path);
И теперь вы можете создавать все свои файлы так:
File myFile = new File(root, "config.xml");
Конечно, root
должно быть в вашей сфере.