zoukankan      html  css  js  c++  java
  • 对java中路径的一些理解

    开始前先贴一下项目结构


    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()是如何查找文件的?---------------------------未完待续
  • 相关阅读:
    一套C#语言的日志控制系统
    unity自义定摇杆
    2014 西安邀请赛小结
    Poj 1112 Team Them Up!
    Poj 1112 Rebuilding Roads(树形DP+背包)
    USACO Cow Pedigrees
    Poj 2284 That Nice Euler Circuit
    LA 3942 Remember the Word
    HDU 3065 病毒侵袭持续中
    HDU 2896 病毒侵袭
  • 原文地址:https://www.cnblogs.com/woooodlin/p/8524713.html
Copyright © 2011-2022 走看看