在使用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是源文件夹res中的一个文件夹。
答案 0 :(得分:0)
我们发现了您的问题:
您曾经将所有图像相对加载到位于根包中的ResourceLoader
(已损坏!并且您重构了它)。
但是现在(您将ResourceLoader
从/
移到了/main
,并且您的所有URI都指向了“必杀技”,因为相对于{ {1}}。
解决方案:
imgs/...
重构为/main
将/imgs
移至/main/imgs
。 (如果{肯定是imgs
不在那,请创建它,此解决方案不需要代码/ uri调整。)
将(全部个)图像称为main/imgs
(带有斜杠字符(main
))。
也不需要进一步的代码/ uri调整。