开始前先贴一下项目结构


1 public class TestLocation {
2     @Test
3     public void test1(){
4         String s1 = Objects.requireNonNull(TestLocation.class.getResource("")).toString();//------------------5         out.println(s1);
6         String s2 = Objects.requireNonNull(TestLocation.class.getResource("/")).toString();
7         out.println(s2);
8     }
9 }

从这里可以看出区别TestLocation.class.getResource("")TestLocation.class.getResource("/")

classes是编译后的文件夹,

  getResource中啥也不写,就是从当前类编译后所在的目录查找

  getResource中写 / ,就是从编译后文件夹的根目录查找

现在我们做个测试,查找test目录下编译后的文件

结果和我预想的一样。


1 @Test
2     public void test2(){
3         String s1 = Objects.requireNonNull(Thread.currentThread().getContextClassLoader().getResource("")).toString();
4         out.println(s1);
5     }

可以看出这个结果和①处相同。

再来做个测试

两张图的区别在于

  后者我再getRes的时候加上了包名前缀!

  正如我注释中写的, 类.class.getRes只在类所在的目录中查找资源文件,即使加上了包名前缀也没效果。


那么下一个问题,

Thread.currentThread().getContextClassLoader().getResource()是如何查找文件的?---------------------------未完待续

转载于:https://www.cnblogs.com/find-the-right-direction/p/8524713.html

对java中路径的一些理解相关推荐

  1. Java中Map集合如何理解(四)——精简

    目录 引言 概念 Map集合实现类 HashMap LinkedHashMap TreeMap 默认排序 自定义排序方式 常用API 遍历Map集合 键找值 键值对 Lambda表达式 结束语 引言 ...

  2. java中class对象的理解 讲得相当不错 很接地气 引用下

    https://blog.csdn.net/mcryeasy/article/details/52344729 https://blog.csdn.net/dufufd/article/details ...

  3. Java中 synchronized 关键字的理解

    synchronized 关键字的理解 在Java中,synchronized 是一个重量级的控制并发的关键字. 这个关键字可以保证并发过程所必须的"原子性","可见性& ...

  4. java中static关键字的理解(转载)

    static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列 ...

  5. JAVA 中转义符的理解

    生物信息中有时候会遇到JAVA写的程序,今天阅读源码的时候发现对于正则中的转义符不好理解,后来查资料后终于弄明白了,这里详细说明一下: 字符串的表示有三种方法:1.直接单字符,例如"A&qu ...

  6. java中对于框架的理解_接触Java项目一周后对一些基本框架的理解 | 学步园

    最近一周接触了一个Java EE的B/S项目,里面用到了SSH,部分持久层用的是ibatis,接触完后觉得有收获,于是把认识到的记录下来.同时欢迎高手拍砖. 现在终于知道所谓的三层框架(视图层,业务逻 ...

  7. 详细了解java中的null_深入理解java中的null“类型”

    本文研究的主要是java中的null"类型"的相关实例,具体介绍如下. 先给出一道简单的null相关的题目,引发我们对null的探讨,后面会根据官方语言手册对null"类 ...

  8. Java中关于多态的理解

    Java中多态的理解 JAVA中的多态可以简单的理解为一种事物的多种形态,当然多态是在继承的基础上有重写才存在.(因为这篇文章是转载过来的,大部分地方持支持的态度,但也有一些地方存在个人态度,比如这里 ...

  9. Java中的集合如何理解(一)——精简

    目录 引言 概念 体系特点 集合对于泛型的支持 Collection常用API 遍历方式 迭代器遍历 增强for循环 Lambda表达式 集合存储自定义类型的变量 引言 在之前Java的学习过程中,我 ...

  10. Java中的符号的理解

    java程序的运行需要将java文件进行编译,编译成class文件,才能运行.那么java中的<<左移运算符号,要怎么理解呢? public class Test {public stat ...

最新文章

  1. 苹果发布第三财季财报 盘后股价上涨5%
  2. php正则 贪婪模式与懒惰模式
  3. DXPerience6.x 使用体会(二)
  4. RPM方式安装MySQL5.6和windows下安装mysql解压版
  5. P7078-[CSP-S2020]贪吃蛇【贪心,队列】
  6. python api数据接口_python写数据api接口
  7. win10开发java_win10系统搭建Java开发环境的操作方法
  8. 推荐系统(Recommendation system)
  9. Wait Event Disk file operations I/O
  10. MyBatis中![CDATA[ ]]的使用
  11. nas神经网络架构搜索_神经建筑搜索(NAS)基础
  12. 解读HRP建设2.0时代:管控模型从未改变
  13. Payton猜词游戏
  14. 道德经 全文 简体字 繁体字_电脑的各种程序由 0 1 组成,就如同道德经中所说的(道生一。一生二。二生三。三生萬物)
  15. 音频之PCM与WAV
  16. yeezy350灰橙_yeezy新灰橙会氧化吗 椰子350新灰橙氧化怎么办
  17. 从零搭建韦东山老师一期的Ubuntu环境
  18. ArrayMap源码注释
  19. 计算机c盘要满了电脑会卡吗,电脑老是用一段时间就C盘空间满啦运行卡的很,问下该如何解决清理C盘?...
  20. SSM整合(从创表到部署)保姆级别教程超细

热门文章

  1. c语言:【顺序表】静态顺序表的删除指定位置元素Erase、删除指定元素Remove
  2. python 遍历文件夹文件代码
  3. udev文件系统的使用和基本工作原理分析
  4. 活动目录概念和灾难恢复
  5. Linux电源管理系统架构和驱动(1)-Linux电源管理全局架构
  6. linux缺页异常处理--内核空间
  7. M - 13 HDU - 3351 (栈)
  8. chrome导入与导出书签
  9. cocos2d-x 3.0对label的改进
  10. opencv裁剪图像(不规则裁剪)