如何修复使用ImageIO.read[Java][初学者]加载纹理时出现的错误

如何修复使用ImageIO.read[Java][初学者]加载纹理时出现的错误,java,textures,javax.imageio,Java,Textures,Javax.imageio,在远离java多年后,我最近决定尝试重返java,我正在关注youtube制作游戏的系列教程。我尝试加载使用以下代码制作的纹理 (我正在使用Eclipse) 我收到以下错误: Caused by: java.lang.RuntimeException: java.lang.IllegalArgumentException: input == null! at net.xernia.bluehero.graphics.Texture.loadBitmap(Texture.java:23) at n

在远离java多年后,我最近决定尝试重返java,我正在关注youtube制作游戏的系列教程。我尝试加载使用以下代码制作的纹理 (我正在使用Eclipse)

我收到以下错误:

Caused by: java.lang.RuntimeException: java.lang.IllegalArgumentException: input == null!
at net.xernia.bluehero.graphics.Texture.loadBitmap(Texture.java:23)
at net.xernia.bluehero.graphics.Texture.<clinit>(Texture.java:11)
... 5 more
Caused by: java.lang.IllegalArgumentException: input == null!
at java.desktop/javax.imageio.ImageIO.read(ImageIO.java:1356)
at net.xernia.bluehero.graphics.Texture.loadBitmap(Texture.java:15)
... 6 more

我在Properties->java build path下添加了res作为modulepath下的类文件夹。如果这对你们中的一些人来说是一个非常小的错误,很抱歉,但这让我非常困惑。希望这是足够的信息,请让我知道我是否遗漏了一些重要的信息:)

将文件夹res移动到src,我们有:

src
    package
         Texture.java
    res
         textures
             floor.png

并将文件名更改为
/res/textures/floor.png
。(别忘了重建项目)

文件名是在哪里定义的,它是空的吗?我不确定问题出在哪里,但作为对@cam6577的响应,
fileName
loadBitmap()
方法的参数,它是一个字符串,在OPs示例中,它的值是
“/textures/floor.png”
。这个问题是运行时问题。在运行应用程序时,您需要确保
res
在类路径上,而不是在构建应用程序时(也就是说,重要的不是“Java构建路径”。我不使用Eclipse,而是类似
Java-cp classes/:res/your.MainClass
的东西)。否则一切都好。非常感谢!这解决了它,我已经搜索了好几天了哈哈。非常感谢:)
 src
     package
         Texture.java
 res
     textures
         floor.png
src
    package
         Texture.java
    res
         textures
             floor.png