簡體   English   中英

導出jar文件中的資源

[英]Export resource in jar file

我在將帶有背景資源的 Jframe 應用程序導出到 jar 文件時遇到問題(沒有任何外部資源文件夾。為了更好的可移植性,我更喜歡將所有內容都放入 jar 文件中)。 這是代碼。 在 Eclipse 上一切正常,但是當我導出到 jar 文件時,應用程序不會加載,因為找不到資源“cccc.jpg”。 我已經嘗試過 getResource() 但效果不佳。

// Load Background image
BufferedImage img = null;
try {
    img = ImageIO.read(new File("cccc.jpg"));
} catch (IOException e) {
    e.printStackTrace();
}

// Set Background image
Image dimg = img.getScaledInstance(640, 480, Image.SCALE_SMOOTH);
ImageIcon imageIcon = new ImageIcon(dimg);
setContentPane(new JLabel(imageIcon));

BufferedImage bufferedImage = ImageIO.read(MyClass.class.getResource("/images/cccc.jpg"));

請參閱: 從資源加載圖像無法讀取輸入文件

說您的代碼在 ecplise 中工作是暗示您已在項目文件夾的根目錄中找到“cccc.jpg”文件(這是在 eclipse 中運行應用程序或單元測試時的當前文件夾)。

要將文件作為資源打包到您的 jar 中:只需將其放入您的源文件夾中。 如果您的源包名為“my.app.main”,您可以將圖像文件直接放在“my”文件夾旁邊並通過以下方式加載:

InputStream is = ClassLoader.getSystemResourceAsStream( "cccc.jpg" )

或者將其放入子包(例如“my.app.images”)並通過以下方式加載:

InputStream is = ClassLoader.getSystemResourceAsStream( "my/app/images/cccc.jpg" )

順便說一句:ImageIO.read 也可以將 InputStream 作為參數。

我解決了這個問題。 現在,當我打開 jar 文件時,一切都已正確加載。

鏈接到已解決問題的圖片

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM