1. 以现有项目jar:xxx.jar为例
如根据不同数据库需要更换使用不同的jdbc驱动jar的场景: 把外部驱动jar放到lib-dir1,lib-dir2等目录。
2. 再确定项目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是示例,以实际为准,只要不是前两个)
3. 修改jar启动方式
若原启动命令为([....]为其他参数部分)
[....] java [....] -jar xxx.jar [....]
修改启动方式为:
- 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是示例,以实际为准,只要不是前两个)
多个外置目录用“:”(英文冒号) [....] java [....] -cp "xxx.jar:lib-dir1/*:lib-dir2/*" x.y.z [....]
知识点
- java 参数
java -cp “xxx.jar:lib1/*:lib2/*” x.y.z -cp: 指定java运行加载的类路径,linux下英文冒号分割(windows下英文分号分隔) x.y.z 为启动类
- springboot 默认打包后的启动类 参见:官网

到此这篇关于springboot加载外部jar的项目实践的文章就介绍到这了,更多相关springboot加载外部jar内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论