从 class 路径条目获取文件列表

Getting a List of files from a class path entry

我的应用程序遇到一个问题,我无法列出 class 路径条目中的所有资源。

Enumeration<URL> resources = Thread.currentThread().getContextClassLoader().getResources("src/main/resources/*.*");
System.out.println(resources);
while (resources.hasMoreElements()) {
  URL url = resources.nextElement();
  //Here I am getting an empty URL list.Please help.
  System.out.println(url);
}

我觉得这样阅读的资源应该放在文件夹里 'META-INF':

src/main/java/META-INF

然后你可以像下面这样阅读(最好比我更具体地指定你的文件类型):

ClassLoader cl = this.getClass().getClassLoader(); Enumeration<URL> resources = cl.getResources("META-INF"); while (resources.hasMoreElements()) { URL url = resources.nextElement(); System.out.println(url); }

有几个问题:

  1. src/main/resources/*.* 不是 ClassLoader.getResources() 的有效语法
    • 路径必须是完整路径,例如src/main/resources
  2. 为什么要从 src/main/resources 目录加载 类?
    • 它假设资源在这样的目录中,但这仅适用于开发目的
    • 编译后资源会存放在不同的目录下(Maven默认放在顶层目录),你的程序将无法正常运行