【JAVA】Class.getResource()与ClassLoader.getResource()的区别
转载自:https://blog.csdn.net/qq_33591903/article/details/91444342
Class.getResource()与ClassLoader.getResource()的区别
Class.getResource(String name):在当前调用类的同一路径下查找该资源
ClassLoader.getResource(String name):在根目录下查找该资源文件,即"/"或classpath目录
代码示例:
首先这是我目录结构:

尝试在Main类中获取a.txt与b.txt资源
package com.sun.test;
import java.net.URL;
public class Main {
public void testResouce() {
//使用./a.txt与a.txt均可
URL url1 = getClass().getResource("a.txt");
System.out.println("当前类路径下使用相对路径获取a.txt :" + url1);
URL url2 = getClass().getResource("/com/sun/test/a.txt");
System.out.println("当前类路径下使用绝对路径获取a.txt :" + url2);
URL url3 = getClass().getResource("../../../b.txt");
System.out.println("当前类路径下使用相对路径获取b.txt :" + url3);
URL url4 = getClass().getResource("/b.txt");
System.out.println("当前类路径下使用绝对路径获取b.txt :" + url4);
URL url5 = getClass().getClassLoader().getResource("com/sun/test/a.txt");
System.out.println("根路径下使用相对路径获取a.txt :" + url5);
//getClassLoader()已经代表根路径"/",因此无法查找到//com/sun/test/a.txt
URL url6 = getClass().getClassLoader().getResource("/com/sun/test/a.txt");
System.out.println("根路径下使用绝对路径获取a.txt :" + url6);
URL url7 = getClass().getClassLoader().getResource("b.txt");
System.out.println("根路径下使用相对路径获取b.txt :" + url7);
//getClassLoader()已经代表根路径"/",因此无法查找到//b.txt
URL url8 = getClass().getClassLoader().getResource("/b.txt");
System.out.println("根路径下使用绝对路径获取b.txt :" + url8);
}
public static void main(String[] args) {
new Main().testResouce();
}
}
输出为:

【JAVA】Class.getResource()与ClassLoader.getResource()的区别的更多相关文章
- Class.getResource和ClassLoader.getResource的区别分析
原文:http://swiftlet.net/archives/868 在Java中获取资源的时候,经常用到Class.getResource和ClassLoader.getResource,本文给大 ...
- 关于获取资源文件,Class.getResource和ClassLoader.getResource的区别
原文同步发表至个人博客[夜月归途] 原文链接:http://www.guitu18.com/se/java/2019-02-22/29.html 作者:夜月归途 出处:http://www.guitu ...
- 关于Class.getResource和ClassLoader.getResource的路径问题
Java中取资源时,经常用到Class.getResource和ClassLoader.getResource,这里来看看他们在取资源文件时候的路径问题. Class.getResource(Stri ...
- 【转】关于Class.getResource和ClassLoader.getResource的路径问题
Java中取资源时,经常用到Class.getResource和ClassLoader.getResource,这里来看看他们在取资源文件时候的路径问题. Class.getResource(Stri ...
- (转)关于Class.getResource和ClassLoader.getResource的路径问题
Java中取资源时,经常用到Class.getResource和ClassLoader.getResource,这里来看看他们在取资源文件时候的路径问题. 1 Class.getResource(St ...
- Class.getResource和ClassLoader.getResource的路径写法
Java中取资源时,经常用到Class.getResource和ClassLoader.getResource,这里来看看他们在取资源文件时候的路径问题. Class.getResource(Stri ...
- java Class.getResource和ClassLoader.getResource
http://www.cnblogs.com/wang-meng/p/5574071.html http://blog.csdn.net/earbao/article/details/50009241 ...
- 使用Class.getResource和ClassLoader.getResource方法获取文件路径
自从转投Java阵营后,一直发下Java程序的路径读取异常麻烦,因此查阅了比较多的版本内容,整合了一份自己的学习笔记.主要使用Class及通过ClassLoader来动态获取文件路径. 查阅链接如下: ...
- 【转载】使用Class.getResource和ClassLoader.getResource方法获取文件路径
自从转投Java阵营后,一直发下Java程序的路径读取异常麻烦,因此查阅了比较多的版本内容,整合了一份自己的学习笔记.主要使用Class及通过ClassLoader来动态获取文件路径. 查阅链接如下: ...
随机推荐
- 搞大数据,你不懂这三大数据处理趋势就OUT了
搞大数据,你不懂这三大数据处理趋势就OUT了 企业数据每年以PB级甚至上百PB爆炸式增长,越来越大的数据量正为扩大分析策略在企业应用软件领域的拓展提供了数据基础,但数据的价值是有时效性的,越早分析越能 ...
- vue中export和export default的使用
1 export的使用 比喻index.js要使用test.js中的数据 首先在test.js文件中进行导出操作 在index.js文件进行导入操作 第一种方法: 此时的输出结果是: 注意: expo ...
- PAT甲级——A1128 N Queens Puzzle【20】
The "eight queens puzzle" is the problem of placing eight chess queens on an 8 chessboard ...
- JAVA_ArrayList和HashSet
ArrayList ArrayList在Java中主要是以线性表的形式进行存储,其本质是数组,不过相对于数组的长度不可变这一缺点,其实行了长度可变策略,使你在使用时,感觉到其就是一个无限长度的数组,而 ...
- mybatis中处理结果集映射
单行结果集映射: 接口中方法返回值定义为Map类型,sql语句的resultType属性设置为map即可.这种情况默认把列名作为key,列中的值作为value. 也就是说用map<Strirng ...
- 解决jquery调用NET webservice跨域的问题
声明,解决方案由网上收集而来,个人整理.有别人的,也有我的. 一.webserive端 1.web.config 需要在web.config的configuration节点中加入如下的黑体部分内容. ...
- opencv编译:opencv 3.4.1 编译 contrib模块,增加人脸识别
start cmake-gui select the opencv source code folder and the folder where binaries will be built (th ...
- Codeforces Round #479 (Div. 3) 题解 977A 977B 977C 977D 977E 977F
A. Wrong Subtraction 题目大意: 定义一种运算,让你去模拟 题解: 模拟 #include <iostream> #include <cstdio> ...
- Java怎样对一个属性设置set或get方法的快捷键
具体步骤如下: 首页,在testApp.java 类中定义属性,例如:public Sting name; 其次,Alt+Shift+S, 选择Generate Getters and Setter ...
- localhost与127.0.0.1区别
一.连接MySQL数据库有两种方式:TCP/IP(一般理解的端口的那种)和Unix套接字(一般叫socket或者sock) 大部分情况下,可以用localhost代表本机127.,但是在MySQL连接 ...