2

线

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文件夹中,我认为原件是正确的。

4

1 回答 1

5

假设您的课程在 package 中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")

请注意前导/,这意味着开始查看 classpath 的根,即。这是一条绝对路径。

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

于 2013-10-15T18:14:14.550 回答