SpringBoot項目jar發佈後如何獲取jar包所在目錄路徑
SpringBoot項目jar發佈獲取jar包所在目錄路徑
ApplicationHome ah = new ApplicationHome(getClass()); File file = ah.getSource(); System.out.println(file.getParentFile().toString());
說明:
該種方法獲取jar包所在路徑好處,會根據當前是本地測試環境還是發佈到生產環境準確獲取jar所在路徑。
SpringBoot打可執行jar運行時輸出文件路徑問題
Ubuntu系統環境下,項目打jar包形式運行工程生成文件以及獲取該文件的路徑設置問題
1.使用前輩項目中如下方法在打war包和本地運行項目時能夠獲取目錄。
IDEA中獲取的是:/home/xxx/xxx/(projectName)/target/classes;
若使用在jar包中獲取的是:/home/xxx/BOOT-INF/classes
String path = (String.valueOf(Thread.currentThread().getContextClassLoader().getResource(""))).replaceAll("file:/", "").replaceAll("%20", " ").trim();
2.當項目打jar包使用java -jar xxx.jar運行時,jar會作為一個單獨的文件運行,文件不會生成在jar包中。
所以使用System.getProperty(“user.dir”);獲取當前jar所運行的路徑(和jar文件所在的同級目錄),使用該路徑作為根目錄存放項目中生成的文件。
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- SpringBoot項目中jar發佈獲取jar包所在目錄路徑的最佳方法
- 詳解Spring boot操作文件的多種方式
- Java中關於文件路徑讀取問題的分析
- Java System.getProperty()-獲取系統參數案例詳解
- Java系統變量參數獲取設置System.getProperties()的方法