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

时间:2015-06-15 08:49:15

标签: java classpath

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

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);
}

2 个答案:

答案 0 :(得分:1)

有几个问题:

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

答案 1 :(得分:-2)

我认为读取的资源应放在'META-INF'文件夹中:

的src /主/ 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); }