zoukankan      html  css  js  c++  java
  • Java获取工程目录

    背景:程序执行时,会涉及到去读取配置文件等操作,那就需要了解怎么获得文件路径
     

    Java目录映射关系

    说明一点:在Java代码执行时,会将编译生成的classes文件,以及配置文件等信息生成到target目录下。最终执行的文件实际是target下的class文件
    以上图的例子为例:
    工程名:zzappqa
    工程所在目录:/opt/script/zzappqa
    生成的target目录:target
     
    下面是一个工程文件到生成的target目录的一个映射关系
    zzappqa工程下的文件target下的文件源码java文件classes下的class文件资源文件resourcesclasses下web站点的资源文件webappzzappqa(工程名)

     

    zzappqa工程下的文件 target下的文件
    源码java文件 classes下的class文件
    资源文件resources classes下
    web站点的资源文件webapp zzappqa(工程名)

    一般配置文件都是放在资源文件resources下的,综上关系,如果想获得配置文件。只要找到target下的classes目录即可。
     
    获取classes目录地址的方法:
    this.getClass().getResource("/").getPath() 
     

    获取工程目录的方法

    说明:web站点,在本地和在tomcat启动时,System.getProperty("user.dir")是不一致的
     
    方法 说明
    System.getProperty("user.dir")
    1、如果是本地执行的,获取的是工程根目录
    2、如果是在tomcat中启动的,获得的是tomcat的bin目录
    Thread.currentThread().getContextClassLoader().getResource("").toString())
    获得java编译文件存放的classes根目录
    资源文件resources也在该目录下
    this.class.getClassLoader().getResource("").getPath()
    同上
    获得java编译文件存放的classes根目录
    资源文件resources也在该目录下
    this.class.getClass().getResource("/").getPath()
    同上
    获得java编译文件存放的classes根目录
    资源文件resources也在该目录下
    this.class..getClass().getClassLoader().getResource(".").getPath()
    同上
    获得java编译文件存放的classes根目录
    资源文件resources也在该目录下
    this.class.getClass().getResource("/comm").getPath()
    获得classes目录下的comm路径
    注:如果该路径不存在会抛空指针异常
    System.getProperty("java.class.path") 获得java所有类加载路径

     

  • 相关阅读:
    【Educational Codeforces Round 101 (Rated for Div. 2) C】Building a Fence
    【Codeforces Round #698 (Div. 2) C】Nezzar and Symmetric Array
    【Codeforces Round #696 (Div. 2) D】Cleaning
    【Codeforces Round #696 (Div. 2) C】Array Destruction
    【Educational Codeforces Round 102 D】Program
    【Educational Codeforces Round 102 C】No More Inversions
    【Good Bye 2020 G】Song of the Sirens
    【Good Bye 2020 F】Euclid's nightmare
    使用mobx入门
    requestAnimationFrame 控制速度模拟setinterval
  • 原文地址:https://www.cnblogs.com/meitian/p/9382661.html
Copyright © 2011-2022 走看看