引用.jar文件中的图像

时间:2011-06-14 23:39:27

标签: java jar

我在引用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而不是网址?

4 个答案:

答案 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程序中使用你的图像。

例如见:

How do I list the files inside a JAR file?