Java ImageIO.read(getClass()。getResource())返回null
假設(shè)您的課程在package中view.random.name,則
getClass().getResource('gate_and.png')
會(huì)在以下位置尋找資源
/view/random/name/gate_and.png
相對(duì)于類路徑的根。您顯然那里沒(méi)有該名稱的資源。
通過(guò)設(shè)置project/images為構(gòu)建路徑條目,Eclipse將在類路徑中包括所有內(nèi)容。因此,您的資源將顯示在
/gate_and.png
您可以使用
getClass().getResource('/gate_and.png')
請(qǐng)注意 開(kāi)頭/,這意味著 開(kāi)始查看類路徑的根 ,即。這是一條絕對(duì)的道路。
所有這些規(guī)則在javadoc中進(jìn)行了解釋。
解決方法線
andImg = ImageIO.read(getClass().getResource('gate_and.png'));
失敗于
Exception in thread 'AWT-EventQueue-0' java.lang.IllegalArgumentException: input == null!
我正在使用Eclipse,并且在bin文件夾下的導(dǎo)航視圖中有文件gate_and.png,表明該文件位于構(gòu)建路徑中。
在包瀏覽器視圖中,我有
project/src/view/class - This is the class that has the code above.
和
project/images/gate_and.png
我右鍵單擊項(xiàng)目文件夾>構(gòu)建路徑>鏈接源以將images文件夾添加為源,再次執(zhí)行此操作會(huì)提供一條確認(rèn)消息,指出源中已存在圖像。
我還嘗試過(guò)將gate_and.png更改為images /gate_and.png和/images/gate_and.png,但是由于圖像gate_and.png在bin文件夾中,因此我認(rèn)為原始圖片是正確的。
相關(guān)文章:
1. mysql - 在不允許改動(dòng)數(shù)據(jù)表的情況下,如何優(yōu)化以varchar格式存儲(chǔ)的時(shí)間的比較?2. docker網(wǎng)絡(luò)端口映射,沒(méi)有方便點(diǎn)的操作方法么?3. MySQL中無(wú)法修改字段名的疑問(wèn)4. css - 網(wǎng)頁(yè)div區(qū)塊 像蘋果一樣可左右滑動(dòng) 手機(jī)與電腦5. 安全性測(cè)試 - nodejs中如何防m(xù)ySQL注入6. css3 - 純css實(shí)現(xiàn)點(diǎn)擊特效7. javascript - Img.complete和img.onload判斷圖片加載完成有什么區(qū)別?8. java中返回一個(gè)對(duì)象,和輸出對(duì)像的值,意義在哪兒9. javascript - 有適合開(kāi)發(fā)手機(jī)端Html5網(wǎng)頁(yè)小游戲的前端框架嗎?10. javascript - 關(guān)于apply()與call()的問(wèn)題
