2009-11-12 88 views
0

我的程序有以下行,从NetBeans中运行时正常工作,Jar文件资源不可用?

JButton的Button_1 =的新的JButton(新的ImageIcon(Phone_Dialer.class.getResource( “Dir_Icons /” + “Key_1” + Botton_Color + “GIF”) ));

但是,当我从生成的Jar文件运行它时,此行导致“java.lang.NullPointerException”错误,为什么?

的dir是这样的:

C:\Phone_Dialer\src\Phone_Dialer.java 
C:\Phone_Dialer\src\Dir_Icons\Key_1_Silver.gif 
C:\Phone_Dialer\dist\Phone_Dialer.jar 

================================= ================================================== ======== 这绝对不是“Botton_Color”问题,它是这样一个字符串:“Silver”或“Pink”,所以如果我将上面的行更改为“Dir_Icons\Key_1_Silver.gif”,它仍然可以在IDE虽然无法从一个可执行的Jar文件运行,但问题似乎是:为什么在jar项目之后,它找不到资源。 Jar文件由Netbeans生成,并且可执行。

+0

你能否确认文件“Key_1_Silver.gif”相对于“Phone_Dialer.java”的位置? – Rob 2009-11-12 19:24:29

回答

0

我知道了,不知何故,声音文件后缀是大写的,现在我将它们改为小写,它的工作原理,谢谢!

0

熟悉IDE附带的调试器可能是个好主意。它可以让你逐步完成,这对调试这样的小问题非常有帮助,你可能不希望变量为空。由于没有堆栈跟踪,我猜Botton_Color为空。另外,它拼写错误。