我正在尝试在runnable jar中导出图像。经过一些研究后我发现了这种方法:
ImageIO.read(getClass().getClassLoader().getResource("image path"));
经过几次回复并查看API后,我自己尝试了这个。我当前的目录设置如下:
这是我的代码:
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"));
感谢。
答案 0 :(得分:1)
我认为你的问题是领先的&#34; /&#34;
"/res/cherry.png"
将它作为绝对路径(来自你的驱动器的根目录)而不是从你的jar根开始的相对路径
使"res/cherry.png"
成功