由於某種原因,當我在NetBeans中使用「clean and build」並嘗試從dist文件夾運行它時,我的應用程序停止工作。應用程序用於從jar文件打開,但現在只閃爍,甚至不會提供任何錯誤消息。應用程序運行,如果我測試使用NetBeans運行F6。 Jar文件是由NetBeans創建的,所以我想清單應該沒問題。。由netbeans創建的jar文件不能在windows上打開
Here's的鏈接jar文件...
由於某種原因,當我在NetBeans中使用「clean and build」並嘗試從dist文件夾運行它時,我的應用程序停止工作。應用程序用於從jar文件打開,但現在只閃爍,甚至不會提供任何錯誤消息。應用程序運行,如果我測試使用NetBeans運行F6。 Jar文件是由NetBeans創建的,所以我想清單應該沒問題。。由netbeans創建的jar文件不能在windows上打開
Here's的鏈接jar文件...
java -jar tbs.jar
那樣運行它並查看響應。執行終端罐子給出了這樣的異常跟蹤:
Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:155)
at tbs.ImageLoader.loadImage(ImageLoader.java:11)
at tbs.Flag.<init>(Flag.java:21)
at tbs.Model.<init>(Model.java:58)
at tbs.GameView.<init>(GameView.java:33)
at tbs.GUI.<init>(GUI.java:36)
at tbs.Main.main(Main.java:6)
所以看起來你有這樣的事情在這裏:
public Image loadImage(String name) {
return new ImageIcon(getClass().getResource(name));
}
...並返回getResource()
方法null
,這導致ImageIcon
構造函數拋出異常。
在Flag.java的第21行中,您使用"images/flagNeutral.png"
作爲圖像字符串,但是您的jar文件包含images/flagneutral.png
(位於tbs
目錄內)。看到不同?
如果它在jar外的本地系統上工作,那麼您在那裏使用不區分大小寫的文件系統。 (Windows還是Mac?) 在jar中,以及通過HTTP和「真實」文件系統上,URL都區分大小寫,這意味着您必須在文件命名時精確命名資源。
是的,通常你應該至少自己試過你的程序,併發布堆棧跟蹤以及相關的代碼行。
你是否在'dist'文件夾中用'java -jar「tbs.jar」'命令運行它?它需要任何外部罐子嗎? – pajton 2011-03-26 23:07:10
pajton建議如果您從命令行運行它,而不是從Windows資源管理器中雙擊它,您可能會看到一個異常來解釋問題所在。 – MeBigFatGuy 2011-03-27 01:45:22