Java獲取工程目錄
阿新 • • 發佈:2018-07-28
classes 文件 class文件 ont 代碼 scrip per 分享 font 背景:程序執行時,會涉及到去讀取配置文件等操作,那就需要了解怎麽獲得文件路徑
一般配置文件都是放在資源文件resources下的,綜上關系,如果想獲得配置文件。只要找到target下的classes目錄即可。
獲取classes目錄地址的方法:
this.getClass().getResource("/").getPath()
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(工程名) |
獲取工程目錄的方法
說明: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獲取工程目錄