Spring Boot REST API启动后自动停止问题求助(Java 19)
你当前运行的是support-learning-jp-0.0.1-SNAPSHOT-plain.jar,这是Spring Boot生成的普通JAR包——它仅包含项目自身代码,不内嵌Web容器(如Tomcat),也没有维持应用进程运行的逻辑,所以启动完成后主线程结束,进程就自动终止了。
解决步骤
1. 运行正确的可执行JAR包
Spring Boot插件默认会生成两个JAR文件:
- 带
-plain后缀:普通JAR,仅含项目代码 - 不带后缀:可执行Fat JAR,包含所有依赖和内嵌Web容器
你需要运行不带-plain后缀的JAR包,执行命令:
java -jar C:\Users\LENOVO\IdeaProjects\support-learning-jp\build\libs\support-learning-jp-0.0.1-SNAPSHOT.jar
2. 检查build.gradle配置
确认你的build.gradle中正确引入Spring Boot插件,确保可执行JAR的构建逻辑生效:
plugins { id 'org.springframework.boot' version '你的Spring Boot版本号' id 'io.spring.dependency-management' version '对应依赖管理版本' id 'java' } // 可选:明确开启可执行JAR打包(默认已启用) bootJar { enabled = true } // 若不需要生成plain jar,可关闭此任务 jar { enabled = false }
3. 确保项目包含Web依赖
作为REST API应用,必须引入Spring Web Starter依赖,否则即使是可执行JAR,启动后也会因无Web容器而立即停止:
dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' // 其他业务依赖... }
4. 重新构建并启动
执行命令重新打包项目:
./gradlew clean build
之后再运行上述不带-plain后缀的JAR包即可。
你的启动日志
23:35:04.965 [main] INFO com.example.supportlearningjp.SupportLearningJpApplication -- Starting SupportLearningJpApplication using Java 19.0.2 with PID 12932 (C:\Users\LENOVO\IdeaProjects\support-learning-jp\build\libs\support-learning-jp-0.0.1-SNAPSHOT-plain.jar started by LENOVO in C:\Users\LENOVO\IdeaProjects\support-learning-jp)
23:35:04.968 [main] INFO com.example.supportlearningjp.SupportLearningJpApplication -- No active profile set, falling back to 1 default profile: "default"
23:35:05.219 [main] INFO com.example.supportlearningjp.SupportLearningJpApplication -- Started SupportLearningJpApplication in 0.381 seconds (process running for 0.588)
内容的提问来源于stack exchange,提问作者Trung Hoai

