Java中gegetResource和gegetClassLoader().getResource()的区别
xxx.class.getResource()用来从当前类(xxx)所在的目录下(也就是以当前类所在路径为根路径)获得资源;
xxx.class.getClassLoader().getResource()用来从classpath路径下(也就是以classpath所在路径为根路径)获得资源。
示例如下:
1.工程结构参考如下:
2.TestGetResource.java代码参考如下:
[java] view plain copy
package resource;
/**
* 测试xxx.class.getResource() & xxx.class.getClassLoader()getResource()
* */
public class TestGetResource {
public static void main(String[] args) throws Exception {
/**
* TestGetResource.class.getResource("aa.txt")从当前路径下(TestGetResource类所在路径)查找资源(aa.txt)
* TestGetResource.class.getClassLoader().getResource("foo.dat")从classpath路径下寻找资源(foo.dat)
* */
System.out.println(TestGetResource.class.getResource("goo.txt"));
System.out.println(TestGetResource.class.getResource("../resource/goo.txt"));
System.out.println(TestGetResource.class.getClassLoader().getResource("resource/goo.txt"));
System.out.println(TestGetResource.class.getClassLoader().getResource("foo.dat"));
}
}
3.输出结果参考如下:
file:/D:/Users/zhkj/Workspaces/MyEclipse%208.5/myResource/bin/resource/goo.txt
file:/D:/Users/zhkj/Workspaces/MyEclipse%208.5/myResource/bin/resource/goo.txt
file:/D:/Users/zhkj/Workspaces/MyEclipse%208.5/myResource/bin/resource/goo.txt
file:/D:/Users/zhkj/Workspaces/MyEclipse%208.5/myResource/conf/foo.dat
xxx.class.getResource()用来从当前类(xxx)所在的目录下(也就是以当前类所在路径为根路径)获得资源;
xxx.class.getClassLoader().getResource()用来从classpath路径下(也就是以classpath所在路径为根路径)获得资源。
示例如下:
1.工程结构参考如下:
2.TestGetResource.java代码参考如下:
[java] view plain copy
package resource;
/**
* 测试xxx.class.getResource() & xxx.class.getClassLoader()getResource()
* */
public class TestGetResource {
public static void main(String[] args) throws Exception {
/**
* TestGetResource.class.getResource("aa.txt")从当前路径下(TestGetResource类所在路径)查找资源(aa.txt)
* TestGetResource.class.getClassLoader().getResource("foo.dat")从classpath路径下寻找资源(foo.dat)
* */
System.out.println(TestGetResource.class.getResource("goo.txt"));
System.out.println(TestGetResource.class.getResource("../resource/goo.txt"));
System.out.println(TestGetResource.class.getClassLoader().getResource("resource/goo.txt"));
System.out.println(TestGetResource.class.getClassLoader().getResource("foo.dat"));
}
}
3.输出结果参考如下:
file:/D:/Users/zhkj/Workspaces/MyEclipse%208.5/myResource/bin/resource/goo.txt
file:/D:/Users/zhkj/Workspaces/MyEclipse%208.5/myResource/bin/resource/goo.txt
file:/D:/Users/zhkj/Workspaces/MyEclipse%208.5/myResource/bin/resource/goo.txt
file:/D:/Users/zhkj/Workspaces/MyEclipse%208.5/myResource/conf/foo.dat