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

时间:2014-05-11 20:48:42

标签: java image illegalargumentexception

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

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

catch (IOException ex) 
{
      lastException=ex;
}

它一直给我"输入== null" 错误。

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

我注意到他们中的大多数都是通过简单的文件放置来解决的,所以当有些人有' bin'虽然我已经建立了#39;和' src'在NetBeans上。

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

2 个答案:

答案 0 :(得分:1)

我假设从名称中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/?)

答案 1 :(得分:0)

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

ClassLoader.getSystemResourceAsStream