亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

javax.imageio.IIOException 讀取輸入文件時

javax.imageio.IIOException 讀取輸入文件時

qq_遁去的一_1 2021-11-17 14:36:15
我正在嘗試將 Image 設置為 JLabel。我使用了這段代碼,它在 IDE 中運行良好。但是當我嘗試在 dist 文件夾中運行 Executable Jar 文件時,它給了我這個錯誤。javax.imageio.IIOException:無法讀取輸入文件!如何解決這個問題。請任何人都可以幫助我嗎?提前致謝。代碼是,ImageIcon iconPicture = new ImageIcon(ImageIO.read(new File("./src/PIC/Images/profileImage.png"))); pictureLabel.setIcon(iconPicture);
查看完整描述

2 回答

?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

您不能依賴“工作目錄”與存儲 Jar/類的位置相同。

ImageIcon iconPicture = new ImageIcon(ImageIO.read(new File("./src/PIC/Images/profileImage.png")));

這向我表明您正在處理一種嵌入式資源,該資源包含在類路徑/Jar 文件中。在這種情況下,您應該使用Class#getResource代替加載資源,因為資源將無法作為 a 讀取File(如果它包含在 Jar 文件中)。

所以,你應該做一些更像是......

ImageIcon iconPicture = new ImageIcon(ImageIO.read(getClass().getResource("/PIC/Images/profileImage.png")));



查看完整回答
反對 回復 2021-11-17
?
忽然笑

TA貢獻1806條經驗 獲得超5個贊

您的程序在運行時無法從給定的路徑中找到圖像

./src/PIC/Images/profileImage.png

這里 。指的是當前目錄,當你必須運行你的程序時, . 一定不是你想要的。因此,解決問題的一種方法是使用絕對路徑,這類似于

D:/work/proj1/src/PIC/Images/profileImage.png

或者

您需要根據您的項目找到當前目錄,然后構建正確的相對路徑。

您可以使用以下一行代碼找到當前目錄路徑,

System.out.println(new File(".").getCanonicalPath());

找到您當前的路徑,然后更正您提供的圖像的相對路徑。


查看完整回答
反對 回復 2021-11-17
  • 2 回答
  • 0 關注
  • 553 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號