欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Class.getResources()和classLoader.getResources()区别

发布时间:2025/4/14 编程问答 49 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Class.getResources()和classLoader.getResources()区别 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Class.getResource(String path)

path不以’/'开头时,默认是从此类所在的包下取资源; path 以’/'开头时,则是从ClassPath根下获取;


package testpackage; public class TestMain {public static void main(String[] args) {System.out.println(TestMain.class.getResource(""));System.out.println(TestMain.class.getResource("/"));} } 输出结果 file:/E:/workspace/Test/bin/testpackage/ file:/E:/workspace/Test/bin/

如果我们想在TestMain.java中分别取到1~3.properties文件,该怎么写路径呢?代码如下:

package testpackage;public class TestMain {public static void main(String[] args) {// 当前类(class)所在的包目录System.out.println(TestMain.class.getResource(""));// class path根目录System.out.println(TestMain.class.getResource("/"));// TestMain.class在<bin>/testpackage包中// 2.properties 在<bin>/testpackage包中System.out.println(TestMain.class.getResource("2.properties"));// TestMain.class在<bin>/testpackage包中// 3.properties 在<bin>/testpackage.subpackage包中System.out.println(TestMain.class.getResource("subpackage/3.properties"));// TestMain.class在<bin>/testpackage包中// 1.properties 在bin目录(class根目录)System.out.println(TestMain.class.getResource("/1.properties"));} }

 

Class.getClassLoader().getResource(String path)

path不能以’/'开头时; path是从ClassPath根下获取; package testpackage; public class TestMain {public static void main(String[] args) {TestMain t = new TestMain();System.out.println(t.getClass());System.out.println(t.getClass().getClassLoader());System.out.println(t.getClass().getClassLoader().getResource(""));System.out.println(t.getClass().getClassLoader().getResource("/"));//null } }

输出结果

class testpackage.TestMain sun.misc.Launcher$AppClassLoader@1fb8ee3 file:/E:/workspace/Test/bin/ null

使用Class.getClassLoader().getResource(String path)可以这么写

package testpackage;public class TestMain {public static void main(String[] args) {TestMain t = new TestMain();System.out.println(t.getClass().getClassLoader().getResource(""));System.out.println(t.getClass().getClassLoader().getResource("1.properties"));System.out.println(t.getClass().getClassLoader().getResource("testpackage/2.properties"));System.out.println(t.getClass().getClassLoader().getResource("testpackage/subpackage/3.properties"));} }

From:http://www.cnblogs.com/yejg1212/p/3270152.html

 

转载于:https://www.cnblogs.com/xiaoliangup/p/9143180.html

总结

以上是生活随笔为你收集整理的Class.getResources()和classLoader.getResources()区别的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。