我在引用jar文件中的简单图像时遇到了麻烦。
我有一个包{j}包含java文件
我有一个包au.com.mysite.pdf
包含图片
在我的java文件中,我引用了这样的图像
au.com.mysite.pdf.res
但永远无法找到图像。在debutter中它看起来像这样
getClass().getResource("/au/com/mysite/pdf/res/logo.png").getPath()
前导'/'与分隔符的含义对于Windows不正确。
我检查了这条路径,它在MS Explorer中不起作用。
好的,它在某种程度上工作,除了图像路径不正确,/C:/Documents%20and%20Settings/myname/workspace/gnupdf/bin/au/com/mysite/pdf/res/logo.png
不是对文件的引用,前导斜杠和%20空格字符是什么?如何将其转换为文件URL而不是网址?
答案 0 :(得分:3)
我不能告诉你为什么那不起作用,但是当我参考我存储在jar中的图像时,通常用于菜单图标图像,我使用:
ImageIcon image = new ImageIcon(this.getClass().getResource("/package/sub_package/image_name.png"));
这一直对我有用。
答案 1 :(得分:1)
如果图像在jar中,getResource将不会返回任何有用的内容。 getResourceAsStream可能就是你想要的。
答案 2 :(得分:0)
使用.jar中的getResource可以正常工作。 几件事: 什么是.jar文件的清单的类路径? .jar中的文件区分大小写。
答案 3 :(得分:0)
<强>更新强>
我看到了你的问题。你试图获得这条路,但这不是必要的,因为无论如何你都无法引用它。
而是这样做:
BufferedImage image = ImageIO.read(this.getClass().getResource("images/image01.png));
然后你可以在java程序中使用你的图像。
例如见: