最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Boot 啟動錯誤排查教程之找不到或無法加載主類的三種解決方案

 更新時間:2026年02月09日 10:32:42   作者:柚子科技  
這篇文章主要介紹了Spring Boot 啟動錯誤排查實戰(zhàn)找不到或無法加載主類的三種解決方案,文章詳細介紹了三個排查步驟:確認主啟動類是否規(guī)范、檢查IDE的運行配置以及清理構(gòu)建緩存并重新編譯,需要的朋友可以參考下

寫在前面:這篇文章適合誰?

這篇文章主要寫給 正在開發(fā)或?qū)W習(xí) Spring Boot 的同學(xué),尤其是剛接觸 Spring Boot、在課程設(shè)計或畢業(yè)設(shè)計階段頻繁導(dǎo)入項目的人。

我最近在一臺 Windows 11 + JDK 8 / JDK 17 的開發(fā)環(huán)境中,多次遇到 Spring Boot 項目啟動時報錯:

錯誤: 找不到或無法加載主類 xxx.Application

這個問題在IDE 中看似簡單,但實際排查時非常浪費時間。在完整解決并復(fù)盤之后,我把關(guān)鍵排查點整理成一篇文章,希望能幫你少走彎路。

一、問題現(xiàn)象與錯誤本質(zhì)

常見報錯信息如下:

Error: Could not find or load main class com.example.demo.DemoApplication
Caused by: java.lang.ClassNotFoundException

從 JVM 的角度來看,這個錯誤只有一個核心含義:

啟動時指定的主類,在當前 classpath 中不存在。

但“為什么不存在”,才是我們真正要解決的問題。

二、第一步:確認 Spring Boot 主啟動類是否規(guī)范

這是最基礎(chǔ)、也是最容易被忽略的一步。

1?? 主啟動類必須滿足的條件

請確認你的啟動類同時滿足以下要求:

  • 位于 src/main/java 目錄下
  • 包名與實際目錄結(jié)構(gòu)一致
  • 包含 @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);
    }
}

?? 真實踩坑點
我曾在重構(gòu)包名后,只改了文件夾路徑,卻忘了同步修改 package 聲明,IDE 不報紅,但啟動直接失敗。

三、第二步:檢查 IDE 的運行配置(高頻問題)

在我的經(jīng)驗中,至少一半的“找不到主類”問題,都出在運行配置上,而不是代碼本身。

2.1 IntelliJ IDEA 中的排查方式

依次檢查:

  1. 點擊右上角運行配置
  2. 打開 Run / Debug Configurations
  3. 查看當前 Spring Boot 配置項

重點關(guān)注兩個地方:

  • Main class
    • 是否是當前項目真實存在的 Application
  • Module
    • 是否選擇了正確的模塊(多模塊項目尤其容易出錯)

?? 推薦做法
直接刪除原有運行配置,然后:

  • 右鍵點擊 Application
  • 選擇 Run

讓 IDEA 自動生成配置,成功率最高。

2.2 Eclipse 中的排查方式

在 Eclipse 中,這個問題更常見,建議直接使用“重建思路”:

  • 打開 Run Configurations
  • 刪除舊的 Java ApplicationSpring Boot App
  • 重新右鍵主啟動類 → Run As

四、第三步:清理構(gòu)建緩存并重新編譯

當代碼和運行配置都沒問題,但錯誤依舊存在時,十有八九是構(gòu)建緩存出了問題。

3.1 Eclipse:使用 Clean 功能

Project → Clean → Clean all projects

這個操作會清理舊的 .class 文件和構(gòu)建緩存,對 Eclipse 用戶非常關(guān)鍵。

3.2 IntelliJ IDEA + Maven 項目

我個人更推薦直接從 Maven 下手:

mvn clean package

重點觀察:

  • target/classes 目錄下
  • 是否真的生成了 DemoApplication.class

如果 .class 文件都沒生成,JVM 自然找不到主類。

五、容易被忽略但很致命的細節(jié)

下面這些問題我都真實踩過坑

  • 項目 JDK 與 IDE JDK 不一致
  • 多模塊項目,啟動模塊選錯
  • pom.xml 編譯失敗但未注意控制臺日志
  • 使用了不兼容的 JDK 版本(例如低版本 Spring Boot + 高版本 JDK)

建議:
遇到問題時,先看一遍完整控制臺日志,而不是只盯著最后一行報錯。

回到問題本身

在文章開頭我們提到,這個錯誤的本質(zhì)是:

JVM 在 classpath 中找不到你指定的主類。

只要你圍繞以下三個點去排查:

  1. 主啟動類是否真實存在
  2. IDE 是否指向了正確的類
  3. 編譯結(jié)果是否真的生成

這個問題幾乎都能解決。

結(jié)語

我長期整理 Spring Boot / Java 畢業(yè)設(shè)計 / 課程設(shè)計常見問題,并將踩坑過程寫成系列文章,主要面向計算機專業(yè)在校生和初學(xué)者。

到此這篇關(guān)于Spring Boot 啟動錯誤排查實戰(zhàn):找不到或無法加載主類的三種解決方案的文章就介紹到這了,更多相關(guān)springboot啟動錯誤找不到或無法加載主類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java JVM字節(jié)碼指令集總結(jié)整理與介紹

    Java JVM字節(jié)碼指令集總結(jié)整理與介紹

    本節(jié)將會著重介紹一下JVM中的指令集、Java是如何跨平臺的、JVM指令集參考手冊等內(nèi)容。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • 詳解設(shè)計模式中的proxy代理模式及在Java程序中的實現(xiàn)

    詳解設(shè)計模式中的proxy代理模式及在Java程序中的實現(xiàn)

    代理模式主要分為靜態(tài)代理和動態(tài)代理,使客戶端方面的使用者通過設(shè)置的代理來操作對象,下面來詳解設(shè)計模式中的proxy代理模式及在Java程序中的實現(xiàn)
    2016-05-05
  • SpringBoot配置文件加載方法詳細講解

    SpringBoot配置文件加載方法詳細講解

    springboot默認讀取的配置文件名字是:“application.properties”和“application.yml”,默認讀取四個位置的文件:根目錄下、根目錄的config目錄下、classpath目錄下、classpath目錄里的config目錄下
    2022-10-10
  • Java中AuthorizationFilter過濾器的功能

    Java中AuthorizationFilter過濾器的功能

    本文主要介紹了Java中AuthorizationFilter過濾器的功能,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-02-02
  • Java Spring中Quartz調(diào)度器詳解及實例

    Java Spring中Quartz調(diào)度器詳解及實例

    這篇文章主要介紹了Java Spring中Quartz調(diào)度器詳解及實例的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 性能爆棚的實體轉(zhuǎn)換復(fù)制工具MapStruct使用詳解

    性能爆棚的實體轉(zhuǎn)換復(fù)制工具MapStruct使用詳解

    這篇文章主要為大家介紹了性能爆棚的實體轉(zhuǎn)換復(fù)制工具MapStruct使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • Java中Integer.parseInt和Integer.valueOf區(qū)別小結(jié)

    Java中Integer.parseInt和Integer.valueOf區(qū)別小結(jié)

    在Java中,Integer.parseInt()和Integer.valueOf()都可以將字符串轉(zhuǎn)換為整數(shù)類型,那么他們有哪些區(qū)別呢,本文就來詳細的介紹一下
    2023-09-09
  • Java Spring攔截器案例詳解

    Java Spring攔截器案例詳解

    這篇文章主要介紹了Java Spring攔截器案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Java實現(xiàn)Token工具類進行登錄和攔截

    Java實現(xiàn)Token工具類進行登錄和攔截

    在應(yīng)用的登錄時需要生成token進行驗證,并放入信息,之后的話可以直接使用瀏覽器的session進行登錄,本文就來利用java編寫一個token工具類,可以很方便的生成和解析token,感興趣的可以了解下
    2023-12-12
  • java檢測redis是否可用的方法示例

    java檢測redis是否可用的方法示例

    這篇文章主要給大家介紹了關(guān)于java檢測redis是否可用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08

最新評論

崇仁县| 宁明县| 西乌珠穆沁旗| 绥化市| 隆昌县| 鲁甸县| 阿瓦提县| 安达市| 曲沃县| 新晃| 六盘水市| 温泉县| 云浮市| 东山县| 靖江市| 花莲市| 江川县| 普陀区| 洛阳市| 和林格尔县| 乌拉特后旗| 大余县| 清镇市| 正蓝旗| 砚山县| 长葛市| 金平| 西盟| 宝丰县| 宁城县| 海门市| 上蔡县| 萨迦县| 岳阳县| 桂阳县| 天水市| 南通市| 同德县| 永福县| 揭西县| 库尔勒市|