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

 

Java目录映射关系

说明一点:在Java代码执行时,会将编译生成的classes文件,以及配置文件等信息生成到target目录下。最终执行的文件实际是target下的class文件

java 工程lib目录 java 获取工程目录_资源文件

以上图的例子为例:

工程名: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所有类加载路径