You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何运行依赖外部system scope Maven Jar的Spring Boot程序

解决Spring Boot Jar搭配system scope依赖的运行问题

嘿,针对你的场景,我有几个实用的方案来处理外部第三方Jar的运行依赖问题,毕竟你用了Maven的system scope且没把这些Jar打包进Spring Boot Jar,正好可以通过以下方式让应用正常启动:

方案1:使用-cp指定完整类路径

你可以通过java命令的-cp(或-classpath)参数,把Spring Boot Jar和第三方Jar都加入类路径,然后指定Spring Boot的启动类来运行:

# Linux/macOS 系统
java -cp "your-spring-boot-app.jar:/path/to/third-party-jars/*" org.springframework.boot.loader.JarLauncher

# Windows 系统
java -cp "your-spring-boot-app.jar;C:\path\to\third-party-jars\*" org.springframework.boot.loader.JarLauncher
  • 替换your-spring-boot-app.jar为你的Spring Boot应用Jar文件名
  • /path/to/third-party-jars/*(Windows下是C:\path\to\third-party-jars\*)指向存放所有第三方Jar的目录,*会匹配目录下所有Jar文件
  • org.springframework.boot.loader.JarLauncher是Spring Boot可执行Jar的标准启动类,大部分版本的Spring Boot都适用

方案2:用Spring Boot专属的loader.path属性(推荐)

Spring Boot提供了loader.path系统属性,专门用来指定额外的类路径资源,这个方式更简洁,不需要手动写启动类:

# Linux/macOS 系统
java -Dloader.path=/path/to/third-party-jars -jar your-spring-boot-app.jar

# Windows 系统
java -Dloader.path=C:\path\to\third-party-jars -jar your-spring-boot-app.jar
  • 替换/path/to/third-party-jars为你的第三方Jar存放目录,也可以直接指定单个Jar文件,比如-Dloader.path=/path/to/xxx.jar
  • 如果有多个目录或Jar,Linux/macOS用冒号:分隔,Windows用分号;分隔,比如-Dloader.path=/path/jar1:/path/jar2

额外注意事项

  • 确保目标机器上的第三方Jar路径正确,你可以用绝对路径避免相对路径的坑,或者把第三方Jar和Spring Boot Jar放在同一目录下,用相对路径比如-Dloader.path=./libs(假设Jar在当前目录的libs文件夹里)
  • 后续更新第三方Jar时,只要替换对应目录里的Jar文件,重启应用即可,完全符合你“随时更新第三方Jar”的需求

内容的提问来源于stack exchange,提问作者yk42b

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:07:58