博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对java中路径的一些理解
阅读量:6229 次
发布时间:2019-06-21

本文共 1028 字,大约阅读时间需要 3 分钟。

开始前先贴一下项目结构


1 public class TestLocation {2     @Test3     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 @Test2     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 生成 PDF 文档
查看>>
深度学习:用生成对抗网络(GAN)来恢复高分辨率(高精度)图片 (附源码,模型与数据集)...
查看>>
缓存与数据库双写,不一致问题及解决方案
查看>>
Swift基础-部分关键字说明与示例
查看>>
【云服务月刊】2018年第1期:阿里云客户服务部总经理张颖杰:用心聆听,服务见智...
查看>>
99%的Java程序员都不知道的Spring中的@Transactional注解的坑
查看>>
堆排序 Heap Sort
查看>>
golang map 底层部分理解
查看>>
3.22(终)
查看>>
第61节:Java中的DOM和Javascript技术
查看>>
排名前十的程序员应用软件曝光,你有用过吗?
查看>>
关于android中监控u盘插入与拔出的困惑与思考
查看>>
Golang 并发爬虫 爬取某著名游戏媒体
查看>>
java(1)
查看>>
支持向量机(Support Vector Machine)
查看>>
react native FlatList内嵌自己的Component不刷新的处理
查看>>
spring boot 加载过程分析--ConfigurationClassPostProcessor
查看>>
Python基础教程,第九讲,异常处理
查看>>
再谈MV*(MVVM MVP MVC)模式的设计原理—封装与解耦
查看>>