1. 程式人生 > >Java獲取工程目錄

Java獲取工程目錄

classes 文件 class文件 ont 代碼 scrip per 分享 font

背景:程序執行時,會涉及到去讀取配置文件等操作,那就需要了解怎麽獲得文件路徑

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所有類加載路徑

Java獲取工程目錄