无法访问 Java 中的资源文件夹
Can't access resources folder in Java
我试图访问 Java 应用程序中的资源(标记为)文件夹,但没有任何效果,returns 路径错误
我试过:
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
请注意 Gradle 结构中的单词 resource 和 ClassLoader
中的单词 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);
}
我试图访问 Java 应用程序中的资源(标记为)文件夹,但没有任何效果,returns 路径错误
我试过:
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
请注意 Gradle 结构中的单词 resource 和 ClassLoader
中的单词 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);
}