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

Spring Boot项目启动后立即停止无异常,求助排查原因

Spring Boot启动后直接停止、Tomcat未启动的原因及解决办法

你的基础Spring Boot项目打包运行后直接停止,Tomcat未启动,核心原因是项目缺少Web场景依赖。Spring Boot默认会根据引入的starter自动配置应用类型:如果没有web相关依赖,应用会被识别为普通Java程序,启动完成后就会退出JVM,不会启动Tomcat容器。

你的代码示例

DemoApplication.java

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

运行时输出

.   ____          _            __ _ _
 /\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::               (v2.7.12)

[2023-06-15 18:02:39.813] - 70503 INFO [main] --- com.example.demo.DemoApplication: Starting DemoApplication using Java 1.8.0_352 on machine16 with PID 503 (~/sv/lib/d-test.jar started by user6 in ~/sv)
[2023-06-15 18:02:39.838] - 70503 INFO [main] --- com.example.demo.DemoApplication: No active profile set, falling back to 1 default profile: "default"
[2023-06-15 18:02:40.883] - 70503 INFO [main] --- com.example.demo.DemoApplication: Started DemoApplication in 1.828 seconds (JVM running for 2.387)

构建时输出

.   ____          _            __ _ _
 /\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::               (v2.7.12)

2023-06-15 18:07:10.050  INFO 123133 --- [           main] com.example.demo.DemoApplicationTests    : Starting DemoApplicationTests using Java 1.8.0_352 on machine16 with PID 8372 (started by user6 in ~/sv/demo)
2023-06-15 18:07:10.051  INFO 123133 --- [           main] com.example.demo.DemoApplicationTests    : No active profile set, falling back to 1 default profile: "default"
2023-06-15 18:07:11.185  INFO 123133 --- [           main] com.example.demo.DemoApplicationTests    : Started DemoApplicationTests in 1.347 seconds (JVM running for 2.184)

解决办法

在项目的依赖管理文件中添加spring-boot-starter-web依赖:

Maven(pom.xml)

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

Gradle(build.gradle)

implementation 'org.springframework.boot:spring-boot-starter-web'

添加依赖后重新打包运行,你会看到Tomcat启动的日志(比如Tomcat initialized with port(s): 8080 (http)),应用会保持运行状态,不会直接退出。

另外,构建时的输出和运行时类似,是因为构建过程中默认执行了测试用例(日志里的DemoApplicationTests),测试完成后JVM就会退出,和无web依赖的应用启动行为一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 03:10:35