• 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所有类加载路径

     

  • 相关阅读:
    DHCP和NAT
    Mongos WoW
    是否能在构造函数,析构函数中抛出异常?
    Lua Getter/Setter
    xLua
    基于模板特化的Lua自动绑定系统
    为什么有人说富坚义博有着殿堂级的画功?他的画功体现在哪儿呢? 关注者 10205 被浏览 2701670
    在Windows和MacOS下编译Lua
    解决warning MSB8012:问题
    setjmp和longjmp
  • 原文地址:https://www.cnblogs.com/meitian/p/9382661.html
Copyright © 2020-2023  润新知