2015-06-15 140 views
0

下面是異常輸出。我認爲該程序無法檢索FXML文件「home.FXML」;它在這條線上失敗:JavaFX可執行文件JAR遇到加載FXML文件的問題,爲什麼不加載FXML?

Parent root = FXMLLoader.load(getClass().getResource("/fxml/home.fxml")); 

這是加載FXML的類的其餘部分。

public class Boorus extends Application{ 

public static void main(String[] args){ 
    launch(args); 
} 

public void start(Stage primaryStage) throws Exception{ 

    SQLboss.makeTables(); 
    Parent root = FXMLLoader.load(getClass().getResource("/fxml/home.fxml")); 
    Scene scene = new Scene(root); 

    primaryStage.setScene(scene); 
    primaryStage.setTitle("Boorus"); 
    primaryStage.show(); 


} 
} 

我的項目結構看起來如右圖所示:

enter image description here

Pastebinned異常這裏:http://pastebin.com/rWkRuury

回答

2

正在加載fxml文件。問題是它被打破了。

有些東西在罐子裏面不起作用。除非你向我們展示fxml,否則沒有人可以幫助你。順便說一句,這將是當該文件未找到異常:

java.lang.NullPointerException: Location is required. 
     at javafx.fxml.FXMLLoader.loadImpl(Unknown Source) 
     at javafx.fxml.FXMLLoader.loadImpl(Unknown Source) 
     at javafx.fxml.FXMLLoader.loadImpl(Unknown Source) 
     at javafx.fxml.FXMLLoader.loadImpl(Unknown Source) 
     at javafx.fxml.FXMLLoader.loadImpl(Unknown Source) 
     at javafx.fxml.FXMLLoader.load(Unknown Source) 
     at application.Main.start(Main.java:14) 
     at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$159(Unknown Source) 
     at com.sun.javafx.application.LauncherImpl$$Lambda$53/1018544248.run(Unknown Source) 
     at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$172(Unknown Source) 
     at com.sun.javafx.application.PlatformImpl$$Lambda$45/1586270964.run(Unknown Source) 

但是你的是:

Caused by: javafx.fxml.LoadException: 
fxml/home.fxml 

     at javafx.fxml.FXMLLoader.constructLoadException(Unknown Source) 
     at javafx.fxml.FXMLLoader.loadImpl(Unknown Source) 
     at javafx.fxml.FXMLLoader.loadImpl(Unknown Source) 

這可能是各種各樣的東西,如:E。 G。 this one

0

這是可能的.fxml文件不包含在JAR文件。

在構建JAR文件的步驟中,檢查是否包含.fxml文件,但未排除。

如果您想檢查您的JAR文件的內容,並且不確定如何:將擴展名重命名爲.zip(它實際上是一個zip文件)並將其打開。