Java ImageIO.read(getClass()。getResource())返回null

时间:2013-10-15 18:10:42

标签: java image ubuntu resources

该行

andImg = ImageIO.read(getClass().getResource("gate_and.png"));

失败
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: input == null!

我正在使用Eclipse,在bin文件夹下的导航视图中有文件gate_and.png,表明该文件位于构建路径中。

在包浏览器视图中我有

project/src/view/class  - This is the class that has the code above.

project/images/gate_and.png

我右键单击了项目文件夹>构建路径>链接源将图像文件夹添加为源,再次执行此操作会提供一个确认信息,表示图像已在源中。

我也尝试将gate_and.png更改为images / gate_and.png和/images/gate_and.png,但由于图像gate_and.png位于bin文件夹中,我认为原文是正确的。

1 个答案:

答案 0 :(得分:3)

假设您的课程在view.random.name个包中,那么

getClass().getResource("gate_and.png")

将在

中查找资源
/view/random/name/gate_and.png

相对于类路径的根。你显然没有那个名字的资源。

通过将project/images设置为构建路径条目,Eclipse将在类路径中包含其中的所有内容。因此,您的资源将显示在

/gate_and.png

您可以使用

访问它
getClass().getResource("/gate_and.png")

注意前导/表示开始查看类路径的根,即。这是一条绝对的道路。

所有这些规则都在javadoc中解释。