java.lang.IllegalArgumentException异常:输入== NULL!

2019-07-21 16:17发布

这是一个已经被要求像在这个网站100次的问题,但我已经看过了所有的人,即使他们都得到了解决,没有解决方案,为我工作。

下面是我的代码如下所示:

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()也试过了,但它仍然无法正常工作。

Answer 1:

尝试使用这样的: -

this.icon = ImageIO.read(new FileInputStream("res/test.txt"));

其中res文件夹存在于同一级别的src文件夹。 另外,如果你发现,斜线/res移除文件夹名称。



Answer 2:

作为参数传递的getResourceAsStream路径()相对应的类路径集。 因此,尝试改变这种

this.icon = ImageIO.read(this.getClass().getResourceAsStream("/resources/" + imgName));

this.icon = ImageIO.read(this.getClass().getResourceAsStream("resources/" + imgName));


Answer 3:

我有同样的问题。 我用的路径“my_image.png”在第一,但它没有工作,所以我到处搜寻,并试图在网站上公布的其他解决方案,但没有一次成功。 我解决了矿山从这个改变我的代码

 image = ImageIO.read(SpriteSheet.class.getResourceAsStream("res/image.png"));

 image = ImageIO.read(SpriteSheet.class.getResourceAsStream("/image.png"));

我希望这可以帮助,尽管这个问题在5年前发布。



Answer 4:

这可能会作为一个“不,咄!” 许多在这个网站,但它始终是必须指出的Java如何字面是。 区分大小写是关键,特别是如果你的.jar文件。

当你的.jar文件如果你的程序正常工作与编译,然后运行,但突然间越来越此问题。 请一定要检查你对你的文件夹/文件,并在你的代码的参考案例。 (除了确保他们在你的.jar)

希望这可以帮助任何人在这里结束了在看同样的问题。



Answer 5:

试试这个:

this.icon = ImageIO.read(this.getClass().getResource("/resources/" + imgName));


Answer 6:

你可以试试这个:

image = ImageIO.read(getClass().getResource("/resources/" + imgName));


Answer 7:

请尝试使用以下

this.icon = ImageIO.read(this.getClass().getResourceAsStream("../resources/" + imgName));


Answer 8:

是资源文件夹中的日食一类文件夹? 右键单击项目 - >属性 - > Java构建路径 - >库 - >添加类文件夹 - >(选择res文件夹),并将其添加为一个类文件夹。



Answer 9:

试试这个

private BufferedImage get(String path) throws IOException{    
    URL url = this.getClass().getClassLoader().getResource(path);     
    String thing = url.getFile();       
    return ImageIO.read(new File(thing));      
}


文章来源: java.lang.IllegalArgumentException: input == null! when using ImageIO.read to load image as bufferedImage