无法访问Java中的资源文件夹

4

我尝试访问Java应用程序中标记为“文件夹”的资源,但是什么都不起作用,返回错误的路径。

我已经尝试过:

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
System.out.println(classLoader.getResource("."));

并且

ClassLoader classLoader = Config.class.getClassLoader();
System.out.println(classLoader.getResource("."));

但是它向我展示了file:/D:/testProject/build/classes/main/,当然没有资源文件 :(

如何准确访问resources文件夹?

-TestProject
 |-resources
 |-src
   |-main
1个回答

7

请注意,Gradle结构中的resourceClassLoader中的resource是无关的。

由于您的ClassLoader可能有多个根目录,因此需要循环遍历这些根目录。使用getResources()而不是getResource()。 参见http://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html#getResources-java.lang.String-

代码如下:

ClassLoader classLoader = Config.class.getClassLoader();
// or use:
// ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
// depending on what's appropriate in your case.
Enumeration<URL> roots = classLoader.getResources(".");
while (roots.hasMoreElements()) {
    final URL url = roots.nextElement();
    System.out.println(url);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接