使用getResourceAsStream
加载图像的一个长期的,艰巨的任务后,我决定把我所有的源代码组织成包我src文件夹内。
从那时起,我原来的检索文件的方法不再起作用。
这是我提出的原班:
package main;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.imageio.ImageIO;
public class ResourceLoader {
public static BufferedImage getImage(String uri) throws IOException {
BufferedImage image = null;
image = ImageIO.read(ResourceLoader.class.getResource(uri));
return image;
}
}
正如前面提到的,这个工作进入路径时,100%的罚款:
"imgs/anims/testimage.png"
曾与这个完美的罚款。 IMGS是源文件夹内资源的文件夹。
我们发现您的问题:
你用来加载所有的图片比较,以ResourceLoader
这是位于根包(气馁!和好,你重构)。
但是,现在(您搬离ResourceLoader
/
到/main
和)所有的URI的点入“佳境”,因为没有imgs/...
相对于/main
。
解:
/imgs
根据资源加载到/main/imgs
移动imgs
到main/imgs
。 (如果main
是(当然!)不存在,请创建它,这个解决方案不需要码/ URI调整。)/imgs/...
(以斜杠字符(/
))。