java映像在一个环境中不起作用。jar文件
创建应用程序的JAR时,应用程序中的图像不再显示。我们加载图像的代码示例如下:
ImageIcon placeHolder = new ImageIcon("src\\Cards\\hidden.png");
我们不知道为什么会发生这种情况。如果我们不将应用程序压缩到JAR中,它将按预期运行;作为一个罐子,图像就消失了。我们还尝试使用URL而不是图像图标,但这只会导致程序根本无法运行
有什么想法吗
编辑:我们将图像文件以正确的路径放入JAR文件,所以这不是问题所在
# 1 楼答案
您应该从类路径加载资源,如下所示:
当然,这假设在创建JAR时,实际上是将图像文件放入其中
还有一个getting the resource as a URL的方法
# 2 楼答案
问题:jar中是否存在
src
文件夹提示:您可以打开。jar与任何支持ZIP以查看其内容的解包程序
回答:引用资源的方式不正确,您应该改为执行类似
getClass().getClassLoader().getResource("Cards/hidden.png")
的操作# 3 楼答案
检查您正在调用的constructor的API。您传入的字符串是一个文件路径——当资源打包在JAR中时,文件系统中没有包含映像的文件,因此您不能再使用此构造函数
相反,您需要使用类加载器从流中加载资源,并将它们拉入字节数组:
当然,需要更多的异常和边缘案例处理,但这就是它的要点