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

时间:2011-08-26 02:32:40

标签: java eclipse resources

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

我的文件结构:

  • SP1
    • SRC
      • 资源
        • 01.png

这是我的代码,我正在尝试设置图片的网址:

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

setImagePath正在执行此操作,我确信这不是问题所在,因为我遵循执行并将其设置为null。

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

解决方案

我必须清理构建并重建。它在修复之后起作用了。

5 个答案:

答案 0 :(得分:9)

我必须清理构建然后重建。立即行动。

答案 1 :(得分:3)

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

答案 2 :(得分:0)

  1. 确保资源文件在您的类路径下。例如,检查您的模块/项目是否已编译为xxx.jar并保存在文件夹“ target”下
  2. 我也遇到了这个问题,当我运行mvn install时,生成了 NO jar文件,这就是为什么在target的jar文件中找不到资源的原因
  3. 未生成jar的原因是通过pom.xml中的以下配置引起的,请将其删除并重新运行安装即可。

    <packaging>pom</packaging>
    

答案 3 :(得分:-1)

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

JDeveloper

答案 4 :(得分:-2)

我猜这个网址应该是“01.png”而不是“/resources/01.png”