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

Spring Boot项目:java -cp命令启动解压后jar包的正确形式

问题分析与解决方案

你遇到的NoClassDefFoundError是因为Spring Boot可执行jar解压后的目录结构特殊,直接指定根目录作为类路径时,JVM无法找到项目编译后的类和依赖库的正确位置:

  • 项目编译后的类文件都存放在BOOT-INF/classes目录下
  • 所有第三方依赖jar包都集中在BOOT-INF/lib目录下

正确的java -cp启动命令

Windows环境

需要将BOOT-INF/classes和BOOT-INF/lib下的所有jar包都加入类路径,命令如下:

java -cp "C:\Users\User\Desktop\demo-0.0.1-SNAPSHOT\BOOT-INF\classes;C:\Users\User\Desktop\demo-0.0.1-SNAPSHOT\BOOT-INF\lib\*" com.example.demo.DemoApplication

注意:Windows系统的类路径分隔符是;,lib\*会自动匹配该目录下的所有jar包。

Linux/macOS环境

类路径分隔符使用:,命令形式如下:

java -cp "/path/to/demo-0.0.1-SNAPSHOT/BOOT-INF/classes:/path/to/demo-0.0.1-SNAPSHOT/BOOT-INF/lib/*" com.example.demo.DemoApplication

补充说明

虽然上述方式可以成功启动项目,但Spring Boot官方推荐使用JarLauncher的核心原因是它会自动处理类路径拼接、依赖加载以及Spring Boot特有的启动逻辑,能避免手动维护类路径的繁琐和出错风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 22:45:58