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。

推薦閱讀: