Java ImageIO无法正确导入BuffereImage

Java ImageIO无法正确导入BuffereImage,java,bufferedimage,javax.imageio,Java,Bufferedimage,Javax.imageio,抛出错误-- 线程“thread-3”java.lang.IllegalArgumentException中的异常:输入==null! 位于javax.imageio.imageio.read(未知源) 代码-- 文件路径-- H:\workspace\Isaac\resources\toon.png 我对此进行了一些研究,但没有一个解决方案真正对我有效。有什么想法吗?如果Isaac是你的项目文件夹,那么你阅读的方式应该是有效的。请检查目录resources是否是源文件夹(在eclipse中,它

抛出错误--

线程“thread-3”java.lang.IllegalArgumentException中的异常:输入==null! 位于javax.imageio.imageio.read(未知源)

代码--

文件路径--

H:\workspace\Isaac\resources\toon.png


我对此进行了一些研究,但没有一个解决方案真正对我有效。有什么想法吗?

如果
Isaac
是你的项目文件夹,那么你阅读的方式应该是有效的。请检查目录
resources
是否是源文件夹(在eclipse中,它应该有一个覆盖java包的文件夹图标),如果不是,请右键单击它,进入
Build path
并选择
Use as source folder

您的目录结构应该如下所示:

编译前

H:\workspace\Isaac
├───resources
│       toon.png
│
└───src
        Player.java
H:\workspace\Isaac
├───bin
│       Player.class
│       toon.png
│
├───resources
│       toon.png
│
└───src
        Player.java
编译后

H:\workspace\Isaac
├───resources
│       toon.png
│
└───src
        Player.java
H:\workspace\Isaac
├───bin
│       Player.class
│       toon.png
│
├───resources
│       toon.png
│
└───src
        Player.java

getResourceAsStream
bin
中查找图像,而不是在
resources

中查找图像。toon.png文件似乎不在jar文件边界内,如果在jar文件边界内,则无法作为资源获取。如果资源位于src文件中,则应位于类文件之外的bin目录中。如果您使用的是Eclipse,并且您在src之外创建了一个目录,那么我相信您也将在bin中创建一个等价的目录,并且您的图像将可以访问。我的3个主包文件夹和“资源”文件夹都在我的java项目的bin文件夹中。您使用的是Eclipse吗?在您发布的文件路径中,我没有看到bin或src目录。请澄清。@Noah请打开cmd并执行
树/F H:\workspace\Isaac
,然后在您的问题中发布目录结构。我们需要知道每个目录的内容,我通过在eclipse中创建一个新项目并将isaac项目的所有内容添加到新项目中来修复它。不知道发生了什么,但感谢你帮助我这个网站,我如何奖励帮助我的人???@Noah如果你发现一个有用的答案,你可以勾选它左边的向上箭头。如果一个答案能帮助你最好地解决你的问题,那么你也可以通过勾选左边的选中图标来将其标记为已接受。请花一点时间为本网站的基本功能做一个简单的介绍,我们将以徽章的形式为您提供奖励;-)