2017-01-28 10 views
0

Чтобы изучить JavaFX, я создал свой первый проект с использованием IntelliJ IDEA и экспортировал проект в качестве проекта Eclipse. Все работает хорошо, когда я запускаю проект в этих двух IDE. К сожалению, после создания проекта и попытки запустить файл .jar или .exe, я получаю исключение, и я думаю, что проблема заключается в FXMLLoader, который не может найти файлы fxml.Файлы FXML не были найдены после создания проекта

public void initRootLayout() { 
     try { 
      // Load root layout from fxml file. 
      FXMLLoader loader = new FXMLLoader(); 
      loader.setLocation(Main.class.getResource("../view/RootLayout.fxml")); 
      rootLayout = (BorderPane) loader.load(); 
      // Show the scene containing the root layout. 
      Scene scene = new Scene(rootLayout); 
      primaryStage.setScene(scene); 
      primaryStage.show(); 
      // Give the controller access to the main app. 
      RootLayoutController rootLayoutController = loader.getController(); 
      rootLayoutController.setMain(this); 
     } catch (IOException e) { 
      showExceptionDialog(e); 
     } 
     // Try to load last opened person file. 
     File file = getPersonFilePath(); 
     if (file != null) { 
      loadPersonDataFromFile(file); 
     } 
    } 

Project hierarchy

Exception in Application start method 
java.lang.reflect.InvocationTargetException 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
     at java.lang.reflect.Method.invoke(Unknown Source) 
     at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389) 
     at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
     at java.lang.reflect.Method.invoke(Unknown Source) 
     at sun.launcher.LauncherHelper$FXHelper.main(Unknown Source) 
Caused by: java.lang.RuntimeException: Exception in Application start method 
     at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917) 
     at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(LauncherImpl.java:182) 
     at java.lang.Thread.run(Unknown Source) 
Caused by: java.lang.IllegalStateException: Location is not set. 
     at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2434) 
     at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2409) 
     at com.melkojji.controller.Main.initRootLayout(Unknown Source) 
     at com.melkojji.controller.Main.start(Unknown Source) 
     at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863) 
     at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326) 
     at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294) 
     at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) 
     at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) 
     at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191) 
     ... 1 more 
Exception running application com.melkojji.controller.Main 
+0

Вы всегда можете попробовать Netbeans. – Sedrick

ответ

0

Я не думаю, что ваши FXML файлы упаковываются с банкой. Вы должны использовать папку resources. Перейдите в настройки своих проектов и установите папку ресурса модуля.

+0

Где я могу добавить или найти этот файл 'resources'. У меня уже есть файл' resources' в каталоге сборки. Могу ли я использовать его? Должен ли я редактировать путь в коде? –

+0

@MustaphaELKOJJI Проверьте содержимое файла jar перед реструктуризацией проекта. Я не думаю, что это проблема (или, по крайней мере, не вся проблема). –

+0

https://www.mkyong.com/java/java-read-a-file-from-resources-folder/ –