這是一個問題,這個網站已被問了100次,但我已經看過所有這些,即使他們都解決了,沒有解決方案爲我工作。java.lang.IllegalArgumentException:input == null!當使用ImageIO.read加載圖像作爲緩衝圖像
這裏是我的代碼如下所示:
public Button1(Client client, String imgName) {
this.client = client;
try {
this.icon = ImageIO.read(this.getClass().getResourceAsStream("/resources/" + imgName));
} catch (IOException e) {
e.printStackTrace();
}
當代碼運行時,它會導致以下錯誤:
Exception in thread "main" java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(Unknown Source)
字符串imgName被傳遞給構造從子類,是圖像的名稱(例如image.png)。我還確保我的資源文件夾位於項目文件夾的根目錄中,並且作爲eclipse項目中的源文件夾。我也確保System.getProperty("user.dir")
指向正確的位置。我也嘗試使用getResource()而不是getResourceAsStream(),但它仍然不起作用。
通常情況下,如果'resources'文件夾實際上在Eclipse中標記爲源文件夾,則不應在上面的文件位置中包含'/ resources'部分。相反,'resources'文件夾將是「根」,你應該只能做'「/」+ imgName'。 – 2013-09-20 18:48:07
只是把我的個人經驗。我正在調查一個小時的類似問題,當時我注意到我的 .jpg資源以大寫字母開頭,而我已經定義了從小寫開始的路徑 .jpg。所以船長明顯警覺,但仍然 - 提防文件名:)祝你好運。 –
Alex
2016-04-07 01:47:32
[這個答案](http://stackoverflow.com/a/17753326/731314)是當我得到這個相同的錯誤的解決方案。 – Gary 2016-06-10 23:55:14