[英]Referencing an image in a .jar file
我在引用 jar 文件中的簡單圖像時遇到了真正的麻煩。
I have a package au.com.mysite.pdf
tha contains the java files I have a package au.com.mysite.pdf.res
tha contains images
在我的 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
windows 的前導“/”和分隔符不正確是什么意思。
我檢查了這個路徑,它在 MS Explorer 中不起作用。
好的,它在某種程度上可以工作,除了圖像路徑不正確,/C: /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 可能是您想要的。
使用來自 a.jar 的 getResource 將起作用。 有幾件事:您的.jar 文件清單的類路徑是什么? a.jar 中的文件區分大小寫。
更新
我看到了你的問題可能是什么。 您正在嘗試獲取路徑,但這不是必需的,因為無論如何您都無法引用它。
而是這樣做:
BufferedImage image = ImageIO.read(this.getClass().getResource("images/image01.png));
然后您可以在 java 程序中使用您的圖像。
例如看這個:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.