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
  • 相关阅读:
    java web项目打包.war格式
    version 1.4.2-04 of the jvm is not suitable for thi
    Sugarcrm Email Integration
    sharepoint 2010 masterpage中必须的Content PlaceHolder
    微信开放平台
    Plan for caching and performance in SharePoint Server 2013
    使用自定义任务审批字段创建 SharePoint 顺序工作流
    Technical diagrams for SharePoint 2013
    To get TaskID's Integer ID value from the GUID in SharePoint workflow
    how to get sharepoint lookup value
  • 原文地址:https://www.cnblogs.com/infoo/p/6403912.html
Copyright © 2011-2022 走看看