为什么class.getResource()会继续返回null,尽管指定路径上有资源?

nbu*_*urk 5 java eclipse class getresource

我想知道为什么该方法getResource不断返回null,我有以下设置:

public static URL getResource(String path){
    URL url = ResourceLoader.class.getResource(path);
    if (Parameters.DEBUG){
        System.out.println(path);
    }
    return url;
}
Run Code Online (Sandbox Code Playgroud)

我在Eclipse中的项目结构如下:

-- res
  -- img
Run Code Online (Sandbox Code Playgroud)

path我传递给的变量getResource有值"/res/img""/res/img/smile.png".然而,该方法保持返回null并且url未设置.我也按照这个问题的说明,通过运行配置将文件夹添加到项目的类路径中,仍然没有成功......有谁知道我做错了什么?

在此输入图像描述

VGR*_*VGR 5

简答:使用"/img/smile.png".

实际发生的是,任何/以Class.getResource方法开头的路径始终被视为相对于类路径中的每个条目.

如屏幕截图所示,该res目录是类路径条目.因此,Class.getResource方法将您提供的路径视为相对于该条目.含义,相对于res目录.

因此,该方法将您的字符串参数与该目录相结合,从而产生res/res/img/smile.png.由于该位置不存在文件(资源),因此返回null.