當我創建一個帶有應用程序類的新Netbeans Projekt(JavaFX FXML應用程序)時,我照常收到模板(一個.fxml,一個控制器類和主應用程序) 。當我試圖運行此我得到一個異常:JavaFX Netbeans Standard FXML應用程序錯誤 - Nullpointer for .fxml文件
Exception in thread "main" java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:403)
at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:47)
at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:115)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException: Location is required.
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2825)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2809)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2795)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2782)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2771)
at volltextsuche.Volltextsuche.start(Volltextsuche.java:25)
[...]
這是我的start()方法:
@Override
public void start(Stage stage) throws Exception {
URL url = getClass().getResource("FXMLDocument.fxml");
System.out.println(url == null);
Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
,不知何故該URL爲null。 25行是Parent root = [...]
部分。 .fxml文檔具有與Strings tell完全相同的名稱,並與主應用程序類位於同一個包中。我沒有改變任何東西,只是URL的空檢查。我搜索了很長時間,但我無法找到任何有關此錯誤的信息。
- JDK 8.0_45
- Netbeans的8.0.2
- 贏8.1 x64的
FXML文件是否與您顯示的代碼的「Application」類位於同一個包中? –
是的。可惜的是URL是即時無效的,我無法打印路徑... –
您能否看到FXML是否隨類文件一起部署到Netbeans部署其類文件的任何位置? (我不是NetBeans用戶,但我知道有時需要強制從源文件夾中部署除class文件以外的資源。) –