【发布时间】:2015-07-20 23:11:51
【问题描述】:
这是我写的
Image icon = new ImageIcon(getClass().getResource("files/icon.png")).getImage();
在一个 JFrame 扩展类中,然后设置框架的图标
this.setIconImage(icon);
我是这样做的,而不是简单地使用路径,否则如果我将项目导出为可执行的 .jar,图标就会消失。 (如此处所示:Once exported, java cannot find/draw images)
现在出现的问题是,可执行的 .jar 以应有的方式工作(它创建一个文件夹以及一个 .xml 文件并写入其中),但没有生成可见框架。 但是,如果我在 eclipse 中运行程序,一切正常,我看到了框架。 我发现问题出在 ImageIcon 的创建上,因为如果我运行
getClass().getResource("files/icon.png");
一切正常。 该文件也在它的位置,所以这不应该是错误。
希望您能帮助我并提前致谢。
【问题讨论】:
-
你使用的路径是相对的还是绝对的?
-
可能是因为图片没有和 Jar 一起导出,所以抛出了
NullPointerException -
@Blip 相对于我在 (RTFrame, epvpimg.com/kOCDg) 中调用方法的类,@MadProgrammer 图像可以在正确路径下的导出文件中找到,所以我不这么认为: /
-
所以,在代码中添加跟踪。打印
getClass()的值。打印getClass().getResource("files/icon.png")的值。打印new ImageIcon(getClass().getResource("files/icon.png"))的值。在控制台中查找异常堆栈跟踪。看看jar tvf yourjar.jar给出了什么。通常调试的东西。如果您对我们说的只是框架没有出现,并且您不相信我们怀疑的内容是真实的,我们将无能为力。证明我们错了。 -
@JBNizet 我早该想到这个……抱歉。结果:pastebin.com/gSBwinby 现在的问题显然是资源,我用“.getResource”得到,因为它为空。不幸的是,我不知道如何解决这个问题!无论如何,感谢您到现在为止的大力帮助!
标签: java eclipse swing executable invisible