使用ImageIO的Java未知来源

时间:2012-10-11 14:20:33

标签: java png embedded-resource javax.imageio

我的程序在Netbeans中运行良好,但是当我在浏览器中运行我的applet时出现以下错误:

java.lang.IllegalArgumentException: input == null!
    at javax.imageio.ImageIO.read(Unknown Source)

我打开了jar来验证png文件是否正确放置在那里。我不确定以下为什么不起作用(当然是在try块中):

BufferedImage beam = ImageIO.read(this.getClass().getResource("images/beam.png"));

我尝试了以下其他事情,但怀疑问题可能是其他问题。

URL url = this.getClass().getResource("images/beam.png");
BufferedImage beam = ImageIO.read(url.openStream());

感谢您的建议。

2 个答案:

答案 0 :(得分:1)

问题出在您的路径String中。请改用:

BufferedImage beam = ImageIO.read(this.getClass().getResource("/images/beam.png"));

(注意路径前的/

答案 1 :(得分:0)

为记录起见,如果某人由于某种原因而被卡在这种错误中,eclipse会自动更改构建路径并阻止打包图像路径。

要更改此设置,只需right click on the project name-> Properties-> Java Build Path-> Source Tab,然后检查是否排除了包含图像的文件夹(如果只是)删除该规则。