2015-05-06 132 views
0

當我創建一個帶有應用程序類的新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的

IDE with project

+0

FXML文件是否與您顯示的代碼的「Application」類位於同一個包中? –

+0

是的。可惜的是URL是即時無效的,我無法打印路徑... –

+0

您能否看到FXML是否隨類文件一起部署到Netbeans部署其類文件的任何位置? (我不是NetBeans用戶,但我知道有時需要強制從源文件夾中部署除class文件以外的資源。) –

回答

0

好吧,我發現了錯誤,請參閱here。錯誤是不同的,但解決方案是相同的。我在我的項目設置中找到了dist.jar的引用。作爲鏈接狀態中的回答問題,我必須CLEAN and build第一次構建的項目。那個破碎的參考被修正了。我刪除了所有已編譯的文件,現在編譯器會完成所有需要的工作並編譯整個項目。

0

這是一種有效的臨時解決方案。

首先將資源複製到與src文件夾相同的目錄。

所以,如果你的src文件夾路徑是C:再次應用

運行應用程序:應用程序/ src目錄,然後將所有資源複製到C。