我正在开发一个 Java Maven 项目,并尝试使用 ClassLoader 从资源/图像文件夹中加载图像,但由于某种原因失败了。 在我将所有图像从“src/main/resource”移动到“src/main/resource/Images”文件夹之前,一切都很好。 我必须将图像的字母大小写更改为“images”或“IMageS”之类的内容才能成功加载它们,这很奇怪。
这是我用来加载图像的代码
Image i = null;
URL u = GameUtil.class.getClassLoader().getResource(imagePath);
i = new Image(u.toString());
这是我使用的路径,作为示例 “图片/candy.png”
错误消息:java.lang.NullPointerException:无法调用“java.net.URL.toString()”,因为“u”为空
我希望我可以使用确切的路径加载图像,而不是使用与实际文件夹的字母大小写不匹配的路径
编译 Maven 项目时,
/src/main/resources
的内容将放置在类路径的根目录下。您需要以前导正斜杠开始路径以引用根。示例:
URL url = GameUtil.class.getResource("/Images/candy.png");
// ...
我敢打赌您最初就是这样做的。我的猜测是您删除了前导斜线并忘记了它。