springboot加載外部jar的項(xiàng)目實(shí)踐
1. 以現(xiàn)有項(xiàng)目jar:xxx.jar為例
如根據(jù)不同數(shù)據(jù)庫需要更換使用不同的jdbc驅(qū)動(dòng)jar的場(chǎng)景: 把外部驅(qū)動(dòng)jar放到lib-dir1,lib-dir2等目錄。
2. 再確定項(xiàng)目jar的類型
- 查看jar的META-INF/MANIFEST.MF文件中的Main-Class(也可以windows下用解壓縮工具查看)
unzip -p xxxx.jar META-INF/MANIFEST.MF | grep Main-
- Main-Class類型主要有以下3類
Main-Class: org.springframework.boot.loader.JarLauncher 或者 Main-Class: org.springframework.boot.loader.PropertiesLauncher 或者 Main-Class: x.y.z (x.y.z是示例,以實(shí)際為準(zhǔn),只要不是前兩個(gè))
3. 修改jar啟動(dòng)方式
若原啟動(dòng)命令為([....]為其他參數(shù)部分)
[....] java [....] -jar xxx.jar [....]
修改啟動(dòng)方式為:
- Main-Class: org.springframework.boot.loader.JarLauncher
[....] java [....] -Dloader.path="lib-dir1,lib-dir2" -cp "xxx.jar" org.springframework.boot.loader.PropertiesLauncher [....]
- Main-Class: org.springframework.boot.loader.PropertiesLauncher
[....] java [....] -Dloader.path="lib-dir1,dir2" -jar xxx.jar [....] 或者 [....] java [....] -Dloader.path="lib-dir1,dir2" -cp "xxx.jar" org.springframework.boot.loader.PropertiesLauncher [....]
- Main-Class: x.y.z (x.y.z是示例,以實(shí)際為準(zhǔn),只要不是前兩個(gè))
多個(gè)外置目錄用“:”(英文冒號(hào)) [....] java [....] -cp "xxx.jar:lib-dir1/*:lib-dir2/*" x.y.z [....]
知識(shí)點(diǎn)
- java 參數(shù)
java -cp “xxx.jar:lib1/*:lib2/*” x.y.z -cp: 指定java運(yùn)行加載的類路徑,linux下英文冒號(hào)分割(windows下英文分號(hào)分隔) x.y.z 為啟動(dòng)類
- springboot 默認(rèn)打包后的啟動(dòng)類 參見:官網(wǎng)

到此這篇關(guān)于springboot加載外部jar的項(xiàng)目實(shí)踐的文章就介紹到這了,更多相關(guān)springboot加載外部jar內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot項(xiàng)目數(shù)據(jù)庫密碼如何加密
在我們?nèi)粘i_發(fā)中,我們可能很隨意把數(shù)據(jù)庫密碼直接明文暴露在配置文件中,今天就來聊聊在springboot項(xiàng)目中如何對(duì)數(shù)據(jù)庫密碼進(jìn)行加密,感興趣的可以了解一下2021-07-07
SpringBoot Starter Parent使用及說明
Spring Boot starter-parent提供默認(rèn)配置和依賴管理,統(tǒng)一版本控制,減少?zèng)_突,簡(jiǎn)化聲明,可通過dependencyManagement或?qū)傩愿采w版本,提升開發(fā)效率與項(xiàng)目穩(wěn)定性2025-09-09
Java中stream.map和stream.forEach的區(qū)別
本文主要介紹了Java中stream.map和stream.forEach的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
springboot獲取訪問的ip地址的實(shí)現(xiàn)步驟
本文主要介紹了spring boot獲取訪問的ip地址,可以在沒有HttpServletRequest參數(shù)的情況下獲取IP地址,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-10-10
優(yōu)化spring?boot應(yīng)用后6s內(nèi)啟動(dòng)內(nèi)存減半
這篇文章主要為大家介紹了優(yōu)化spring?boot后應(yīng)用6s內(nèi)啟動(dòng)內(nèi)存減半的優(yōu)化示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-02-02
Java數(shù)據(jù)結(jié)構(gòu)之ArrayList與順序表詳解
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)之ArrayList與順序表,在Java中,ArrayList是一個(gè)可動(dòng)態(tài)調(diào)整大小的數(shù)組實(shí)現(xiàn),它屬于java.util包,ArrayList提供了一種方便的、基于索引的方式來存儲(chǔ)和訪問對(duì)象,需要的朋友可以參考下2025-05-05

