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

     

  • 相关阅读:
    ProGuard代码混淆
    电影资源网站分享
    mvn高级构建
    BeanUtils对象属性copy的性能对比以及源码分析
    你可能用到的Spring工具类?
    搭建K8s集群
    IDEA部署Spring-boot到Docker容器
    搭建团队协作办公wiki (confluence)
    Linux中关闭SSH的DNS解析
    责任链异步处理设计模型
  • 原文地址:https://www.cnblogs.com/meitian/p/9382661.html
Copyright © 2020-2023  润新知