我正在使用JavaFX並嘗試將CSS文件加載到我的場景中。從類路徑之外的目錄加載資源時的NPE
scene.getStyleSheets().add(Main.class.getResource("res/application.css").toExternalForm();
拋出一個NPE。我想這是因爲CSS文件不在類路徑中,但我不知道如何以這種方式加載它。我不想將css文件包含在我的軟件包目錄(com.somecompany.package)中,我更願意將它包含在一個單獨的目錄中,該目錄可以自行部署(因此用戶可以根據需要進行修改)。
如何從類路徑外部加載一個css文件(或資源)?
我的堆棧跟蹤:
java.lang.NullPointerException
at com.somecompany.someapp.Main.start(Main.java:30)
at com.sun.javafx.application.LauncherImpl$5.run(LauncherImpl.java:319)
at com.sun.javafx.application.PlatformImpl$5.run(PlatformImpl.java:206)
at com.sun.javafx.application.PlatformImpl$4.run(PlatformImpl.java:173)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:29)
at com.sun.glass.ui.win.WinApplication$3$1.run(WinApplication.java:73)
at java.lang.Thread.run(Unknown Source)
如果無法找到該文件,那麼它應該拋出FileNotFoundException ...你能粘貼NPE的堆棧跟蹤嗎? –
@GV'Class#getResource()如果找不到資源,則返回null。 –
添加了堆棧跟蹤。 Main.class的第30行是上面的行。 @SotiriosDelimanolis是對的,這是一個n,因爲它找不到它。我不知道如何使它找到它,但 – SnakeDoc