Я наткнулся на ту же проблему. Программа отлично работала от Eclipse с помощью кнопки «Запустить», но не из запускаемого JAR, который я ранее экспортировал. Мое решение было:
1) Переместить основной класс в пакет по умолчанию
2) Установить другой путь для Eclipse и другие во время работы из файла JAR (вставить это в Main.java)
public static final String sourcePath = isProgramRunnedFromJar() ? "src/" : "";
public static boolean isProgramRunnedFromJar() {
File x = getCurrentJarFileLocation();
if(x.getAbsolutePath().contains("target"+File.separator+"classes")){
return false;
} else {
return true;
}
}
public static File getCurrentJarFileLocation() {
try {
return new File(Main.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath());
} catch(URISyntaxException e){
e.printStackTrace();
return null;
}
}
И после этого в методе начала вам необходимо загрузить такие файлы:
FXMLLoader loader = new FXMLLoader(getClass().getResource(sourcePath +"MainScene.fxml"));
Это работает для меня на Eclipse Mars с e (fx) клише. / g4]