java - maven项目中的Classloader.getResources()返回一个空的Enumeration

标签 java maven classloader

我有一些获取资源的代码,如下所示:

public static final String CONVERTER_FILE = "META-INF/jumbo-converters";
static {
        ClassLoader ldr = Thread.currentThread().getContextClassLoader();
        Enumeration<URL> e = ldr.getResources(CONVERTER_FILE);

但是当我在 JUnit 测试 (Java 6) 中运行它时,枚举为空。项目中有多个子项目,其文件如下:

myProject/mySubProject/src/main/resources/META-INF/jumbo-converters

我相信它在过去是有效的。 getResources 是做什么的?以及如何调试其当前的故障?

最佳答案

要使用ClassLoader.getResources()加载文件,必须在类路径中找到它。解决方案是确保 META-INF 的父文件夹位于类路径中。

关于java - maven项目中的Classloader.getResources()返回一个空的Enumeration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8683193/

相关文章:

java - 从另一个尚未加载的 JAR 加载资源

java - 如何通过 Package.getPackage(...) 访问包?

java - 如何在不重新启动 Web 应用程序的情况下重新加载 servlet 类?

java - 不在 Eclipse 项目中导入的外部 jar

c# - RSA 读取公钥

c++ - 使用 Jenkins 将 C++ 库部署到 Artifactory

java - maven组装packagege理解

Java 字符串用单词、空格和特殊字符分隔正则表达式

java - 你如何找出七次搜索的大 O 和大 Omega?

Eclipse:更改 Maven pom.xml 文件中的 webapp 文件夹