出于某种原因,当我在NetBeans上使用“clean and build”并尝试从dist文件夹运行它时,我的应用程序停止工作。应用程序用于从jar文件打开,但现在它只闪烁,甚至不会给出任何错误消息。应用程序运行,如果我使用NetBeans测试使用F6运行它。 Jar文件是由NetBeans创建的,所以我猜清单应该没问题。
Here's jar文件的链接......
答案 0 :(得分:2)
在终端中执行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都区分大小写,这意味着您必须在命名文件时精确命名资源。
是的,通常你应该至少自己尝试过你的程序,并发布堆栈跟踪以及相关的代码行。
答案 1 :(得分:0)
java -jar tbs.jar
一样运行它并查看响应。 答案 2 :(得分:0)
在清理并运行之前未定义主类的典型错误。
点击项目右侧 - &gt; properties - &gt; run section - &gt;定义主类。