zoukankan      html  css  js  c++  java
  • this.getClass().getResource(String) 路径问题

    this.getClass().getResource(String) 路径问题    这里的默认当前路径是该类所在目录; this.getClass() 说明了一切!!

                                                                               找到类,就找文件;很显然和类同一目录下

                                                                               如果是在静态方法里,可以使用     类名.Class.getResource()

    this.getClass().getClassLoader().getResource(String)  这里的路径就是项目的根目录 src/main下的 或者编译好的classes 下的;getClassLoader()说明了一切 ! !

                                                                               找到类,还得找到类的加载器,再找文件;很显然再根目录下

    File f=new File(String);//路径问题和上述有点区别   这里默认当前路径是该工程下的第一层 与平时所说的src 在同一层

    其实具体所指示的路径可能由于开发工具的相关配置而引起不同,此时可以打印一下f的路径看看

      其实很简单:       

    /images/j.jpg    
    /a.txt

    有斜杠 表示从 项目 根目录下找

       

    images/j.jpg
    a.txt 

    无斜杠表示从当前 执行 文件夹下寻找

    难点在于哪里是根目录,哪里是当前文件夹下。。。。。。是编译好的文件噢!!!!! 不一定 是当前编写的代码所在的文件。为什么说不一定呢?

    对于maven项目,根目录其实是在target 文件夹下的classes 或 test-classes

    对于maven的web项目其目录结构应如下
    maven
    --src
    --main
    --java (在运行时,其内容会被编译到target的classes下,紧适合放java代码)
    --包A
    --包B
    --resources (在运行时,下面内容会被拷贝的target下,因此放一些资源文件)
    --文件夹C
    --图片X
    --图片J
    --webapp
    --test



    --target (运行或编译时候自动生成)
    --classes
    --包A
    --包B
    --问价夹C
    --图片X
    --图片J
               --test-classes

    如上图:根目录就是指classes/ 或test-classes/

    test与main下面的文件夹结构类似,都一般包含java、resource等

    假如我在main/resources 下面的文件价夹下放置 图片.jpg;通过test/java/中的类能否使用呢?

    答案是可以的:

    本人测试结果如下:

    首次编译执行test:

    main/resources与 test/resources 内都有要使用的文件,则使用拷贝到test-classes/下的文件
                         main/resources有 test/resources 内没有,则使用拷贝到classes/下的文件

    非初次编译运行时:

    假如我在第二次运行前删除了test-classes/下的文件 则他会去寻找classes/下的文件
    若都删除则会报错,找不到

    文件同步机制:src ----> target 单向同步



    By Ginfoo
  • 相关阅读:
    Linux网络编程必看书籍推荐
    SpringMVC DispatcherServlet初始化过程
    freemarker写select组件(五)
    hdu 1009 FatMouse' Trade
    新IOS编程语言 Swift 新编译器Xcode6
    NoSQL数据库:数据的一致性
    POJ 3041 Asteroids
    POJ 3342 Party at Hali-Bula (树形dp 树的最大独立集 判多解 好题)
    __repr__与__str__
    HDU 4950 Monster(公式)
  • 原文地址:https://www.cnblogs.com/infoo/p/6403912.html
Copyright © 2011-2022 走看看