我正面臨同樣的問題!當從另一個fxml文件的控制器中輸入fxml文件時出現空點異常
我將ImageView添加到按鈕,並使用SceneBuilder將圖像路徑添加到FXML文件中的ImageView。當我通過Eclipse IDE運行它時工作正常,但當以jar文件運行時沒有問題。
從Button中刪除ImageView後,即使以jar的形式運行,它也能正常工作。
但是,現在我在不同的場景中遇到了同樣的問題!
我使用3個FXML文件構建整個窗口。
- MainWindow(邊框窗格) - 它包含一個菜單欄和添加到邊框窗格頂部位置的工具欄。
- CenterWindow(錨窗格)
- ButtomWindow(錨窗格)
在主窗口,我嘗試添加的CenterWindow和ButtomWindow這是在不同FXML文件的控制器。
但是,NullPointerException
發生在我嘗試加載fxml文件的行的MainWindow控制器。它說在特例中需要位置。 我已經提取了jar文件並進行了檢查,fxml文件在jar裏面。 有人可以請幫忙。
封裝結構:
com.example.app -- contains Main.java which has main() method
com.example.app.controller -- MainWindowController.java, CenterWindowController.java, ButtomWindowController.java
com.example.app.view -- MainWindow.fxml, CenterWindow.fxml, ButtomWindow
在Main.java我加載它加載罰款MainWindow.fxml。然後在MainWindowController.java我試圖加載CenterWindow.fxml & ButtomWindow它給出異常。
異常日誌:
javafx.fxml.LoadException:
file:/C:/Users/a27490989/Documents/NetBeansProjects/AirbusDS/dist/AirbusDS.jar!/
ds/airbus/simulator/view/MainWindow.fxml
at javafx.fxml.FXMLLoader.constructLoadException(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.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 ds.airbus.simulator.Main.start(Main.java:22)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$153(Unknown Source)
at com.sun.javafx.application.LauncherImpl$$Lambda$51/747183799.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$166(Unknown Source)
at com.sun.javafx.application.PlatformImpl$$Lambda$44/584634336.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$null$164(Unknown Source)
at com.sun.javafx.application.PlatformImpl$$Lambda$47/94326726.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$165(Unknown Source)
at com.sun.javafx.application.PlatformImpl$$Lambda$45/501263526.run(Unknown Source)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$141(Unknown Source)
at com.sun.glass.ui.win.WinApplication$$Lambda$37/96639997.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: 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 ds.airbus.simulator.controller.MainWindowController.initOutputView(MainWindowController.java:214)
at ds.airbus.simulator.controller.MainWindowController.initialize(MainWindowController.java:204)
... 23 more
當從JAR文件運行時,MainWindowController.java中的getClass()。getResource(「../ view/Output.fxml」)爲null。 – Nandeesh
試試'getClass()。getResource(「/ com/example/app/view/Output.fxml」)' – ItachiUchiha
@IchichiUchiha,你的建議工作.. :)非常感謝! – Nandeesh