【发布时间】:2012-10-11 14:20:32
【问题描述】:
我的程序在 Netbeans 中运行良好,但在浏览器中运行我的小程序时出现以下错误:
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());
感谢您的建议。
【问题讨论】:
-
URL url = this.getClass().getResource("images/beam.png");图像在调用类的包的子目录中?要从类路径的根目录创建该路径,请将其设为URL url = this.getClass().getResource("/images/beam.png");并确保打印出 URL 或在调试器中检查它。看来您目前正在猜测。 -
您能解释一下您是如何构建放置类和图像的 JAR 文件的吗?可能有助于激发一些想法。
-
myJar.jar 与 lib 位于同一目录中。 jar 有目录 mypackage 和 META-INF。 mypackage 目录包含类文件和目录图像。 images 目录有 png 文件。我认为路径“images/beam.png”是相对于类文件的。
-
抱歉,我的回复延迟了。我正在与进出我办公室的人一起解决这个问题。
-
如果您希望某人收到评论通知,请添加 @PersonName。
标签: java png embedded-resource javax.imageio