![](/img/trans.png)
[英]ImageIO.read(getClass().getResource(imgStr)) returns null in JAR
[英]Java ImageIO.read(getClass().getResource()) returns null
線
andImg = ImageIO.read(getClass().getResource("gate_and.png"));
失敗
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: input == null!
我正在使用 Eclipse,在 bin 文件夾下的導航視圖中有文件 gate_and.png,表明該文件在構建路徑中。
在包資源管理器視圖中,我有
project/src/view/class - This is the class that has the code above.
和
project/images/gate_and.png
我右鍵單擊項目文件夾 > 構建路徑 > 鏈接源以將圖像文件夾添加為源,再次執行此操作會提供一個確認消息,表明圖像已在源中。
我也嘗試將gate_and.png 更改為images/gate_and.png 和/images/gate_and.png,但由於圖像gate_and.png 在bin 文件夾中,我認為原始是正確的。
假設你的班級在包view.random.name
,那么
getClass().getResource("gate_and.png")
將在
/view/random/name/gate_and.png
相對於類路徑的根。 那里顯然沒有該名稱的資源。
通過將project/images
設置為構建路徑條目,Eclipse 將在類路徑中包含其中的所有內容。 因此,您的資源將出現在
/gate_and.png
你可以訪問它
getClass().getResource("/gate_and.png")
注意前導/
意味着開始查看類路徑的根,即。 這是一個絕對路徑。
所有這些規則都在javadoc 中進行了解釋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.