Java使用runnable jar导出图像getClass()。getClassLoader()。getResource(" path")返回null

时间:2014-07-03 18:43:16

标签: java

我正在尝试在runnable jar中导出图像。经过一些研究后我发现了这种方法:

ImageIO.read(getClass().getClassLoader().getResource("image path"));

经过几次回复并查看API后,我自己尝试了这个。我当前的目录设置如下:

enter image description here

这是我的代码:

cherryImg = ImageIO.read(getClass().getClassLoader().getResource("/res/cherry.png"));

是从Snake.java源文件中调用的。

这是错误消息:

Exception in thread "main" java.lang.IllegalArgumentException: input == null!
    at javax.imageio.ImageIO.read(Unknown Source)
    at cje.chris.edwards.snake.game.Snake.<init>(Snake.java:51)
    at cje.chris.edwards.snake.game.Snake.main(Snake.java:156)

Snake.java:51是上面发布的代码行。我明白这是因为找不到资源,我做错了什么?我已将res文件夹添加到构建路径中。

我也尝试过:

cherryImg = ImageIO.read(getClass().getClassLoader().getResource("res/cherry.png"));

这会产生相同的错误消息。

答案:

cherryImg = ImageIO.read(getClass().getClassLoader().getResource("cherry.png"));

感谢。

1 个答案:

答案 0 :(得分:1)

我认为你的问题是领先的&#34; /&#34;

"/res/cherry.png"

将它作为绝对路径(来自你的驱动器的根目录)而不是从你的jar根开始的相对路径

使"res/cherry.png"成功