从 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);
}
有几个问题:
src/main/resources/*.*
不是 ClassLoader.getResources()
的有效语法
- 路径必须是完整路径,例如
src/main/resources
- 为什么要从
src/main/resources
目录加载 类?
- 它假设资源在这样的目录中,但这仅适用于开发目的
- 编译后资源会存放在不同的目录下(Maven默认放在顶层目录),你的程序将无法正常运行
我的应用程序遇到一个问题,我无法列出 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);
}
有几个问题:
src/main/resources/*.*
不是ClassLoader.getResources()
的有效语法- 路径必须是完整路径,例如
src/main/resources
- 路径必须是完整路径,例如
- 为什么要从
src/main/resources
目录加载 类?- 它假设资源在这样的目录中,但这仅适用于开发目的
- 编译后资源会存放在不同的目录下(Maven默认放在顶层目录),你的程序将无法正常运行