使用ImageIO.read获取错误(getClass()。getResourceAsStream(input == NULL)?

当我使用以下代码时,我不断收到此错误:

try { image=ImageIO.read(getClass().getResourceAsStream("build/classes/javaproject/Space.gif")); } catch (IOException ex) { lastException=ex; } 

它给了我“input == null”错误。

我已经试图找到一个解决方案(几个已回答的问题已经有解决方案,但那些对我不起作用)但我没有运气。 例如,这个与我的问题非常相似,但我似乎无法确切地知道将图像文件放在哪里。

我注意到大多数都是通过简单的文件放置来解决的,所以当我在NetBeans上“构建”和“src”时有些人拥有“bin”时更加令人困惑。

此外,我意识到这条路可能是错误的,但我已经尝试了许多不同的方式,它似乎没有与它们中的任何一个一起工作。 我真的很感激任何帮助……

我假设,从名称开始, build/classes/是类路径中的文件夹; 所以你可能需要写的是:

  image=ImageIO.read(getClass().getResourceAsStream("/javaproject/Space.gif")); 

编辑以供评论如下:由于javaproject/实际上不在build/classes/ ,我猜你实际上需要:

  image=ImageIO.read(getClass().getResourceAsStream("/Space.gif")); 

(我知道这里的上下文有点不同,但应该清楚这个系统是在文件系统上建模的。如果你的build/classes/目录不包含javaproject/目录,那为什么它会发生在你身上编写build/classes/javaproject/ ?)

promblom是它的A系统文件所以你也这样做:

ClassLoader.getSystemResourceAsStream