java – 为什么我的BufferedImage从ImageIO.read()接收一个空值
BufferedImage = ImageIO.read(getClass().getResourceAsStream("/Images/player.gif"));
首先,是的,我确实将图像文件夹添加到了我的类路径中.
为此,我收到错误java.lang.IllegalArgumentException:input == null!
我不明白为什么上面的代码不起作用.从我读到的一切,我不明白为什么它不会.我被告知我应该使用FileInputStream而不是GetResourceAsStream,但正如我刚才所说,我不明白为什么.我已经阅读了有关方法和各种指南的文档,这似乎可行.
编辑:好的,尝试清除一些关于我在类路径中的内容.
这是在Eclipse中创建的项目.一切都在项目文件夹DreamGame中,包括“Images”文件夹.当然,DreamGame是在类路径中.我知道这是有效的,因为我正在使用代码中前面提供的gif信息读取/ Images中的文本文件.
所以我有:/DreamGame/Images/player.gif
编辑2:当前在原始帖子中的行是所有正在传递的行;没有/DreamGame/Images/player.gif,只是/Images/player.gif.这是来自ImagesLoader类中的方法,该方法在创建PlayerSprite中的对象时调用.主要类是DreamGame.我正在使用Run选项直接从Eclipse运行代码而没有特殊参数
试图弄清楚如何找到正在加载类的类加载器.对不起,与大多数人相比,我对此非常陌生.
好的,这就是getClassLoader()给我的东西:sun.misc.Launcher$AppClassLoader@4ba778
getClass().getResource(getClass().getName()“.class”)返回/home/gixugif/Documents/projects/DreamGame/bin/ImagesLoader.class
图像文件也被放入bin中.要仔细检查,我从bin中删除了文件,清理了项目并运行它.仍然有同样的问题,图像文件回到bin