[Java开发之路](18)关于Class.getResource和ClassLoader.getResource的路径问题

标签: Java开发之路
2041人阅读 评论(7) 收藏 举报
分类:

Java中取资源时,经常用到Class.getResource和ClassLoader.getResource。昨天老师讲解题目时候,问我们为什么你们都是在文件前家上"/":

  1. String path = Resources.class.getResource("/a.txt").getPath();

注:在Resources文件下创建了a.txt文件

我想我反正是试出来的,不使用"/"不行。为了正式解答心中的疑惑,我们正式来看看Resources路径问题。

1. Class.getResource(String path)

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

  1. System.out.println("path:"+Resources.class.getResource("/"));
  2. System.out.println("path:"+Resources.class.getResource(""));

输出结果:

path:file:/home/xiaosi/Study/lectures/target/classes/

path:file:/home/xiaosi/Study/lectures/target/classes/com/qunar/lectures/


2. ClassLoder.getClassLoder.getResource(String path)

path不能以’/'开头时;
path是从ClassPath根下获取;

  1. System.out.println(r.getClass().getClassLoader().getResource(""));
  2. System.out.println(r.getClass().getClassLoader().getResource("/"));//null

输出结果:

file:/home/xiaosi/Study/lectures/target/classes/

null





1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1379396次
    • 积分:21340
    • 等级:
    • 排名:第398名
    • 原创:623篇
    • 转载:133篇
    • 译文:60篇
    • 评论:182条
    博客专栏
    文章分类
    最新评论