getResources()返回null

时间:2012-03-26 05:56:07

标签: java eclipse

使用Eclipse IDE。这一行:

getClass().getResource("/res/bitmaps/image.png");

返回null。我在项目的根目录中创建了res文件夹。

感兴趣的代码是:

bImage = ImageIO.read(getClass().getResource("/res/bitmaps/image.png"));

并抛出异常:

Exception in thread "main" java.lang.IllegalArgumentException: input == null!
    at javax.imageio.ImageIO.read(ImageIO.java:1378)
    at com.example.game.resource.Resources._loadImage(Resources.java:31)
    at com.example.game.GameComponent.<init>(GameComponent.java:19)
    at com.example.game.GameFrame.<init>(GameFrame.java:8)
    at com.example.game.GameFrame.main(GameFrame.java:13)

任何帮助?

4 个答案:

答案 0 :(得分:3)

ImageIO.read(getClass().getResourceAsStream("res/drawable/image.png"));

确保res文件夹位于类路径中,使用项目属性验证&gt; Java构建路径&gt;来源标签。如果不在课程路径中,可以通过右侧的添加文件夹.. 按钮添加。

答案 1 :(得分:1)

您说资源位于“项目的根目录”中 - 是您构建路径中的那个文件夹吗?您需要在构建路径中拥有它,以便Eclipse将其复制到输出目录(默认情况下为bin)。

答案 2 :(得分:1)

getClass().getResource("/res/drawable/image.png");

您应该提供 image.png 存在的文件夹的路径

答案 3 :(得分:0)

如果名称以'/'('\ u002f')开头,则资源的绝对名称是'/'后面的名称部分。

否则,绝对名称的格式如下: package_name / name

其中package_name是此对象的包名称,其中'/'替换为'。' ( '\ u002e')。