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

Spring应用IDE运行正常,JAR启动报错Failed to determine suitable driver class

问题解决:Spring Boot可执行JAR运行时找不到数据库驱动类

核心原因

你自定义的myFatJar任务未正确处理Spring Boot打包的特殊要求,比如没有合并META-INF/services目录下的驱动注册文件,导致Spring无法识别MySQL驱动类;而IDEA运行时会自动加载所有依赖资源,因此不会出现该问题。

解决方案:使用Spring Boot官方的bootJar任务

Spring Boot Gradle插件内置了专门构建可执行Fat JAR的bootJar任务,无需手动编写打包逻辑:

  1. 删除自定义打包任务
    移除build.gradle中你定义的myFatJar相关代码。

  2. 自定义Jar名称(可选)
    如果需要指定Jar文件名,添加以下配置:

    bootJar {
        archiveBaseName.set("gusli-bot-jar")
        archiveVersion.set(version)
    }
    
  3. 构建并运行

    • 执行构建命令:
      ./gradlew bootJar
      
    • 生成的Jar文件位于build/libs目录下,运行命令:
      java -jar build/libs/gusli-bot-jar-0.8.0.jar
      

额外说明

  • 你的application.properties配置无误,spring.datasource.driver-class-name指定了正确的MySQL 8.x驱动类com.mysql.cj.jdbc.Driver,无需修改。
  • 之前尝试的排除DataSourceAutoConfiguration会导致应用无法初始化数据源,不符合业务需求,无需采用。
  • runtimeOnly 'com.mysql:mysql-connector-j'依赖声明正确,bootJar任务会自动将其包含到最终的Fat JAR中。

内容的提问来源于stack exchange,提问作者Сергей Штукатуров

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 07:05:28