当前位置: 代码网 > it编程>编程语言>Java > Spring Boot 启动错误排查教程之找不到或无法加载主类的三种解决方案

Spring Boot 启动错误排查教程之找不到或无法加载主类的三种解决方案

2026年02月09日 Java 我要评论
写在前面:这篇文章适合谁?这篇文章主要写给 正在开发或学习 spring boot 的同学,尤其是刚接触 spring boot、在课程设计或毕业设计阶段频繁导入项目的人。我最近在一台 windows

写在前面:这篇文章适合谁?

这篇文章主要写给 正在开发或学习 spring boot 的同学,尤其是刚接触 spring boot、在课程设计或毕业设计阶段频繁导入项目的人

我最近在一台 windows 11 + jdk 8 / jdk 17 的开发环境中,多次遇到 spring boot 项目启动时报错:

错误: 找不到或无法加载主类 xxx.application

这个问题在ide 中看似简单,但实际排查时非常浪费时间。在完整解决并复盘之后,我把关键排查点整理成一篇文章,希望能帮你少走弯路。

一、问题现象与错误本质

常见报错信息如下:

error: could not find or load main class com.example.demo.demoapplication
caused by: java.lang.classnotfoundexception

从 jvm 的角度来看,这个错误只有一个核心含义:

启动时指定的主类,在当前 classpath 中不存在。

但“为什么不存在”,才是我们真正要解决的问题。

二、第一步:确认 spring boot 主启动类是否规范

这是最基础、也是最容易被忽略的一步。

1️⃣ 主启动类必须满足的条件

请确认你的启动类同时满足以下要求:

  • 位于 src/main/java 目录下
  • 包名与实际目录结构一致
  • 包含 @springbootapplication 注解
  • 包含标准的 main 方法

示例代码如下:

package com.example.demo;
import org.springframework.boot.springapplication;
import org.springframework.boot.autoconfigure.springbootapplication;
/**
 * @author lll
 * @since 2026
 */
@springbootapplication
public class demoapplication {
    public static void main(string[] args) {
        springapplication.run(demoapplication.class, args);
    }
}

⚠️ 真实踩坑点
我曾在重构包名后,只改了文件夹路径,却忘了同步修改 package 声明,ide 不报红,但启动直接失败。

三、第二步:检查 ide 的运行配置(高频问题)

在我的经验中,至少一半的“找不到主类”问题,都出在运行配置上,而不是代码本身

2.1 intellij idea 中的排查方式

依次检查:

  1. 点击右上角运行配置
  2. 打开 run / debug configurations
  3. 查看当前 spring boot 配置项

重点关注两个地方:

  • main class
    • 是否是当前项目真实存在的 application
  • module
    • 是否选择了正确的模块(多模块项目尤其容易出错)

👉 推荐做法
直接删除原有运行配置,然后:

  • 右键点击 application
  • 选择 run

让 idea 自动生成配置,成功率最高。

2.2 eclipse 中的排查方式

在 eclipse 中,这个问题更常见,建议直接使用“重建思路”:

  • 打开 run configurations
  • 删除旧的 java applicationspring boot app
  • 重新右键主启动类 → run as

四、第三步:清理构建缓存并重新编译

当代码和运行配置都没问题,但错误依旧存在时,十有八九是构建缓存出了问题

3.1 eclipse:使用 clean 功能

project → clean → clean all projects

这个操作会清理旧的 .class 文件和构建缓存,对 eclipse 用户非常关键。

3.2 intellij idea + maven 项目

我个人更推荐直接从 maven 下手:

mvn clean package

重点观察:

  • target/classes 目录下
  • 是否真的生成了 demoapplication.class

如果 .class 文件都没生成,jvm 自然找不到主类。

五、容易被忽略但很致命的细节

下面这些问题我都真实踩过坑

  • 项目 jdk 与 ide jdk 不一致
  • 多模块项目,启动模块选错
  • pom.xml 编译失败但未注意控制台日志
  • 使用了不兼容的 jdk 版本(例如低版本 spring boot + 高版本 jdk)

建议:
遇到问题时,先看一遍完整控制台日志,而不是只盯着最后一行报错。

回到问题本身

在文章开头我们提到,这个错误的本质是:

jvm 在 classpath 中找不到你指定的主类。

只要你围绕以下三个点去排查:

  1. 主启动类是否真实存在
  2. ide 是否指向了正确的类
  3. 编译结果是否真的生成

这个问题几乎都能解决。

结语

我长期整理 spring boot / java 毕业设计 / 课程设计常见问题,并将踩坑过程写成系列文章,主要面向计算机专业在校生和初学者

到此这篇关于spring boot 启动错误排查实战:找不到或无法加载主类的三种解决方案的文章就介绍到这了,更多相关springboot启动错误找不到或无法加载主类内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com