我已将图像存储在资源文件夹“图像”中:
的src
-com.program
-Images
在我使用的程序中
BufferedImage image =ImageIO.read(getClass().getResourceAsStream("/myImage.png"));
导入图像。
这很好用。但是,如果我在源头更改图像的名称(比如myImage1.png) 并尝试执行
BufferedImage image =ImageIO.read(getClass().getResourceAsStream("/myImage1.png"));
我得到输入== Null。 我一直尝试让它工作一段时间,并在其他线程上尝试了各种建议。 有任何想法吗? 谢谢!
答案 0 :(得分:0)
问题很可能是:
图像位于项目内的src
文件夹中,但是当程序运行时,它会从包含已编译类的另一个文件夹运行。此文件夹不包含png
,因此当无法解析资源时,您会收到input == null
例外(getClass().getResourceAsStream(...)
返回null
。
要使其正常工作,您需要将images
文件夹标记为资源文件夹(使用Eclipse,Maven或最喜欢的构建工具),并确保该程序包的内容在程序路径中跑了。