javax.imageio.IIOException: Can't read input file!完美解決


今天遇到一個問題,上圖

 

 

 

 

這段代碼主要是給圖片添加水印

后來百度發現可能是圖片的路徑出了問題,因為是動態獲取的圖片地址,然后我把地址打印出來了

 

 之后通過終端查看,果然沒有

 

 之后我在classes目錄找到了文件

 

 這時煥然大悟

 

 

因為我的圖片文件一開始是放在main文件夾的resources文件夾中的,在文件編譯時,會被放在classes文件夾中。。

然而我的測試代碼是運行在test文件夾的,test文件夾中的resources文件夾中的內容會被放在test-classes文件夾。

代碼中動態獲取路徑時是基於當前運行的代碼位置,所以獲取的路徑為/Users/huang/IdeaProjects/o2o/target/test-classes/watermark.png,但圖片被編譯后放在了/Users/huang/IdeaProjects/o2o/target/classes/watermark.png中,所以報錯找不到文件

 

解決方法:

我采用了比較粗暴的方式,將圖片復制一份到test/resources中,編譯時圖片就會被放到/Users/huang/IdeaProjects/o2o/target/test-classes路徑下,問題解決。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM