SpringBoot項目jar發(fā)布后如何獲取jar包所在目錄路徑
SpringBoot項目jar發(fā)布獲取jar包所在目錄路徑
ApplicationHome ah = new ApplicationHome(getClass()); File file = ah.getSource(); System.out.println(file.getParentFile().toString());
說明:
該種方法獲取jar包所在路徑好處,會根據(jù)當(dāng)前是本地測試環(huán)境還是發(fā)布到生產(chǎn)環(huán)境準(zhǔn)確獲取jar所在路徑。
SpringBoot打可執(zhí)行jar運(yùn)行時輸出文件路徑問題
Ubuntu系統(tǒng)環(huán)境下,項目打jar包形式運(yùn)行工程生成文件以及獲取該文件的路徑設(shè)置問題
1.使用前輩項目中如下方法在打war包和本地運(yùn)行項目時能夠獲取目錄。
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.當(dāng)項目打jar包使用java -jar xxx.jar運(yùn)行時,jar會作為一個單獨的文件運(yùn)行,文件不會生成在jar包中。
所以使用System.getProperty("user.dir");獲取當(dāng)前jar所運(yùn)行的路徑(和jar文件所在的同級目錄),使用該路徑作為根目錄存放項目中生成的文件。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring項目中使用Cache?Redis實現(xiàn)數(shù)據(jù)緩存
這篇文章主要為大家介紹了項目中使用Spring?Cache?Redis實現(xiàn)數(shù)據(jù)緩存,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Spring Boot中整合Spring Security并自定義驗證代碼實例
本篇文章主要介紹了Spring Boot中整合Spring Security并自定義驗證代碼實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04
JVM入門之類加載與字節(jié)碼技術(shù)(類加載與類的加載器)
Java字節(jié)碼增強(qiáng)指的是在Java字節(jié)碼生成之后,對其進(jìn)行修改,增強(qiáng)其功能,這種方式相當(dāng)于對應(yīng)用程序的二進(jìn)制文件進(jìn)行修改。Java字節(jié)碼增強(qiáng)主要是為了減少冗余代碼,提高性能等2021-06-06
Java基礎(chǔ)之FileInputStream和FileOutputStream流詳解
這篇文章主要介紹了Java基礎(chǔ)之FileInputStream和FileOutputStream流詳解,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04
Java分布式鎖理論(redis、zookeeper))案例詳解
zookeeper有個節(jié)點路徑的概念,節(jié)點路徑不能重復(fù),保證了唯一性,這篇文章給大家介紹Java分布式鎖理論(redis、zookeeper)?案例詳解,感興趣的朋友跟隨小編一起看看吧2024-01-01
MyBatis自定義映射resultMap的實現(xiàn)
本文主要介紹了MyBatis自定義映射resultMap的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03

