引用.jar文件中的图像



我在引用jar文件中的一个简单图像时遇到了真正的问题。

我有一个包含java文件的包au.com.mysite.pdf我有一个包含图像的包裹au.com.mysite.pdf.res

在我的java文件中,我引用了这样一个图像getClass().getResource("/au/com/mysite/pdf/res/logo.png").getPath()

但是永远找不到图像。初次亮相时是这样的/C:/Documents%20and%20Settings/myname/workspace/gnupdf/bin/au/com/mysite/pdf/res/logo.png

前导"/"和分隔符的内容不适用于窗口。

我检查了这个路径,它在MS Explorer中不起作用。

更新

好的,它在一定程度上起作用,除了图像路径不正确,/C:/Documents%20and%20Settings/myname/workspace/gnupdf/bin/au/com/mysite/pdf/res/logo.png不是对文件的引用,前导斜杠和%20空格字符是什么?如何将其转换为文件URL而不是web URL?

我不能告诉你为什么这不起作用,但当我引用我存储在jar中的图像时,通常是菜单图标图像,我使用:

ImageIcon image = new ImageIcon(this.getClass().getResource("/package/sub_package/image_name.png"));

这一直对我有效。

如果图像在jar中,那么getResource不会返回任何有用的信息。getResourceAsStream可能就是您想要的。

从.jar中使用getResource将起作用。有几件事:.jar文件的清单的类路径是什么?.jar中的文件区分大小写。

更新

我看到你的问题可能是什么。你正在试图获得路径,但这不是必要的,因为无论如何你都无法引用它。

相反:

BufferedImage image = ImageIO.read(this.getClass().getResource("images/image01.png)); 

然后您可以在java程序中使用您的图像。

例如:

如何列出JAR文件中的文件?

最新更新