getClass().getResource() 总是返回 null

IT小君   2021-12-09T03:51:19

我正在尝试设置位于我的 src 文件夹中的资源文件夹中的图像的 URL。它始终将 URL 设置为 null。图像在那里,一切都被正确命名。问题是什么?谢谢!

我的文件结构:

  • sp1
    • 源文件
      • 资源
        • 01.png

这是我尝试为图片设置 URL 的代码:

this.setImagePath(getClass().getResource("/resources/01.png"));

而 setImagePath 正在这样做,我确定这不是问题,因为我遵循了执行并将其设置为等于 null。

public final void setImagePath(URL imagePath) {
    this.imagePath = imagePath;
}

解决方案

我不得不清理构建和重建。在那次修复之后它起作用了。

点击广告,支持我们为你提供更好的服务
评论(5)
IT小君

我不得不清理构建然后重建。现在工作。

2021-12-09T03:51:19   回复
IT小君

您需要检查,无论您如何构建,图像文件都被复制到类文件编译到的任何位置。即,如果您的课程位于com.foo.MyImageLoader并且位于<build dir>/com/foo/MyImageLoader.class,那么图像应该位于<build dir>/resources/01.png以便您能够像那样加载它。

2021-12-09T03:51:20   回复
IT小君
  1. 确保资源文件在您的类路径下。例如,检查您的模块/项目是否编译为xxx.jar并保存在“target”文件夹下
  2. 我有这个问题为好,当我运行mvn安装,有NO生成jar文件,这就是为什么没有资源的jar文件中发现目标
  3. 没有jar生成的原因是在pom.xml里面的配置导致的,删掉重新安装就可以了。

    <packaging>pom</packaging>
    
2021-12-09T03:51:20   回复
IT小君

如果使用 JDeveloper,请确保您选择了要复制到 classes 文件夹以供使用的文件的扩展名。右键单击项目并选择项目属性以进入此屏幕。

JDeveloper

2021-12-09T03:51:20   回复
IT小君

我猜 URL 应该是“01.png”而不是“/resources/01.png”

2021-12-09T03:51:20   回复