Spring Boot是开发框架而非需安装的软件,真正需部署的是其打包的JAR/WAR应用;常见卡点依次为Java环境未配好、Maven构建失败、JAR启动报错(如无main manifest)、启动后无法访问(防火墙或server.address配置问题)。

Spring Boot 本身不是“安装”的软件,它没有传统意义上的安装包或安装程序。你卡住的地方,大概率是混淆了概念:Spring Boot 是一个开发框架,不是要“安装”的服务;真正需要在 Linux 上部署的是你用 Spring Boot 写出来的应用(即打包好的 jar 或 war 文件)。
下面直击常见卡点,按实际操作顺序说明:
一、Java 环境没配好就往下走
这是最常卡住的第一步。
-
java -version报错或显示 OpenJDK 1.7/11+ 但项目要求 JDK 8? -
/usr/lib/jvm/下有 JDK,但JAVA_HOME没设,或PATH没包含bin目录? -
.bash_profile或/etc/profile里写了export JAVA_HOME=...,但忘了source生效?
✅ 建议:
- 用
rpm -qa | grep jdk或ls /usr/lib/jvm/看真实安装路径 -
echo $JAVA_HOME和which java必须指向同一目录下的bin/java - 验证后务必运行
source ~/.bash_profile(当前用户)或source /etc/profile(全局)
二、Maven 构建失败却硬要运行 jar
你本地 mvn clean package 成功,但上传到 Linux 后执行 mvn clean package 卡在下载依赖(如 Downloading from central: https://repo.maven.apache.org/...),其实是网络或镜像源问题。
✅ 建议:
- 先确认
mvn -v能正常输出版本 - 检查
/etc/maven/settings.xml是否配置了阿里云镜像(CentOS 默认没配) - 若无外网权限,应提前在本地
mvn dependency:copy-dependencies打包依赖,再传到服务器
三、jar 包传上去了,但 java -jar xxx.jar 启动失败
常见报错:
-
no main manifest attribute→ jar 不是可执行的 Spring Boot jar(pom.xml缺<packaging>jar</packaging>或没加spring-boot-maven-plugin) -
Address already in use: bind→ 8080 端口被占用(可能是前一次没 kill 掉进程) -
ClassNotFoundException→ 缺少spring-boot-starter-web等关键 starter,或maven-shade-plugin冲突
✅ 建议:
- 运行
jar -tf your-app.jar | head -20查看是否有META-INF/MANIFEST.MF且含Main-Class: org.springframework.boot.loader.JarLauncher - 用
netstat -tuln | grep :8080或lsof -i :8080找出并kill -9 PID - 启动时加参数观察:
java -jar app.jar --debug或重定向日志:java -jar app.jar > app.log 2>&1 &
四、能启动,但浏览器打不开
表面成功,实则隐形失败:
- 应用监听
localhost:8080(默认),但 Linux 防火墙拦了外部访问 -
application.yml里写了server.address: 127.0.0.1,导致只允许本机访问 - VMware 虚拟机用了 NAT 模式,没做端口转发,宿主机无法访问
✅ 建议:
-
curl -v http://localhost:8080/health在服务器本地测通 -
firewall-cmd --list-ports看 8080 是否开放;没开就执行:firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --reload
- 检查
application.yml中是否明确写了server.address: 0.0.0.0(允许所有 IP) - VMware 改桥接模式,或 NAT 设置端口映射(宿主机 8080 → 虚拟机 8080)
不复杂但容易忽略


















