簡體   English   中英

java.lang.IllegalArgumentException:輸入== null! 在javax.imageio.ImageIO.read(未知來源)

[英]java.lang.IllegalArgumentException: input == null! at javax.imageio.ImageIO.read(Unknown Source)

我正在嘗試將圖標圖像設置為

private void formWindowActivated(java.awt.event.WindowEvent evt) {                                     
  try {

        Image img=ImageIO.read(getClass().getResource("images/logo.png"));
        setIconImage(img);
    } catch (IOException ex) {
        System.out.println(ex.getMessage());
    }
}   

在NetBeans上編譯后,代碼似乎可以正常工作,但是如果我從cmd運行jar文件,則會收到IllegalArgumentException。我似乎不明白如何在第一種情況下而不是另一種情況下可見圖像。

這將在Windows(不區分大小寫的文件系統)下發生,在Windows上,未壓縮的類路徑上的Images/Logo.PNG可能會成功加載,而從jar (zip存檔)啟動(路徑是區分大小寫的)時,加載會失敗。

更正文件大小寫可能很麻煩(版本控制等),因此重命名可能更有用。

備注:

如果(actual!)類位於包xyz ,則jar中的目錄路徑為x/y/z/images/logo.png

因此,要考慮的替代方法是非子類引用和絕對路徑:

    Image img=ImageIO.read(Xyz.class.getResource("images/logo.png"));
    Image img=ImageIO.read(getClass().getResource("/u/v/w/images/logo.png"));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM