【发布时间】:2012-02-16 05:40:47
【问题描述】:
我在运行 jar 文件时遇到问题。如果我在 eclipse 中编译代码一切正常,但是当我导出到 jar 并尝试运行程序时,它会引发错误。 错误是:
Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at game.ChessSquare.<init>(ChessSquare.java:17)
at game.ChessFrame.DrawField(ChessFrame.java:131)
at game.ChessFrame.<init>(ChessFrame.java:38)
at game.Chess.main(Chess.java:7)
所以抛出这个错误的代码是
//text is something like "pawn" or "king".The whole image is an icon on the button
img = new ImageIcon(getClass().getResource("white/"+text+".png"));
据我了解,它找不到图像,因此 img 变量为空。但我不明白为什么它会在 Eclipse 中运行。有什么帮助吗?谢谢
PS@AndrewThompson
E:\Desktop>jar tvf chess.jar
49 Sat Feb 11 23:40:06 GMT 2012 META-INF/MANIFEST.MF
378 Sat Feb 11 22:51:04 GMT 2012 game/ChessFieldCoord.class
1932 Sat Feb 11 23:39:48 GMT 2012 game/ChessSquare.class
536 Sat Feb 11 22:51:04 GMT 2012 game/Chess.class
2122 Sat Feb 11 22:51:04 GMT 2012 game/Rook.class
2357 Sat Feb 11 22:51:04 GMT 2012 game/Bishop.class
1946 Sat Feb 11 22:51:04 GMT 2012 game/Queen.class
2127 Sat Feb 11 22:51:04 GMT 2012 game/Pawn.class
1630 Sat Feb 11 22:51:04 GMT 2012 game/Knight.class
878 Sat Feb 11 22:51:04 GMT 2012 game/Empty.class
1642 Sat Feb 11 22:51:04 GMT 2012 game/King.class
915 Sat Feb 11 22:52:32 GMT 2012 game/ChessFrame$1.class
841 Sat Feb 11 22:52:32 GMT 2012 game/ChessFrame$2.class
695 Sat Feb 11 22:52:32 GMT 2012 game/ChessFrame$3.class
3525 Sat Feb 11 22:52:32 GMT 2012 game/ChessFrame$Move.class
4675 Sat Feb 11 22:52:32 GMT 2012 game/ChessFrame.class
997 Sat Feb 11 22:51:04 GMT 2012 game/ChessFigure.class
928 Sat Feb 11 15:49:32 GMT 2012 game/black/bishop.png
1947 Sat Feb 11 15:49:10 GMT 2012 game/black/king.png
1247 Sat Feb 11 15:49:38 GMT 2012 game/black/knight.png
627 Sat Feb 11 15:49:44 GMT 2012 game/black/pawn.png
1668 Sat Feb 11 15:49:20 GMT 2012 game/black/queen.png
626 Sat Feb 11 15:49:26 GMT 2012 game/black/rook.png
1493 Sat Feb 11 15:48:30 GMT 2012 game/white/bishop.png
1889 Sat Feb 11 15:48:06 GMT 2012 game/white/king.png
1544 Sat Feb 11 15:48:40 GMT 2012 game/white/knight.png
1003 Sat Feb 11 15:48:48 GMT 2012 game/white/pawn.png
2440 Sat Feb 11 15:48:12 GMT 2012 game/white/queen.png
837 Sat Feb 11 15:48:20 GMT 2012 game/white/rook.png
发生错误的文件是ChessSquare.class
【问题讨论】:
-
你检查过最终 Jar 里有什么吗?
-
检查 .jar 文件中的文件“white/XXX.png”。仅供参考,您可以使用标准的“winzip”命令(以及 JDK“jar”命令行工具)查看/编辑您的 jar 文件。
-
i.stack.imgur.com/wPyuO.png - 这是里面的chess.jar。我无法理解的是为什么它从 Eclipse 运行而不是从 jar 运行。文件夹结构始终相同:(
-
因为它是游戏/白色,而不是白色?
-
1) 要通知某人您发表了评论,请在评论前加上@PersonName 2) 请不要发布文本信息的屏幕截图。使用
jartool 列出命令行中的内容(参见列出 jar 文件的目录),然后复制/粘贴输出。