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

添加MySQL Connector/J JAR后仍报ClassNotFoundException问题排查

问题:添加MySQL Connector/J JAR后仍无法连接数据库,报ClassNotFoundException

目标

使用Java连接MySQL数据库

问题现象

已将MySQL Connector/J JAR文件添加到引用库中,但代码运行时抛出java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver错误

代码

import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class App {
    public static void main(String[] args) throws Exception {
        Class.forName("com.mysql.cj.jdbc.Driver");
        Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc_db", "root", "password");
        System.out.println("driver loading..............."); 
    }
}

错误信息

Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver

堆栈跟踪

Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:375)
        at App.main(App.java:6)

配置信息

  • Java版本:Java 17
  • Connector/J版本:Connector/J 8.0.28
  • MySQL版本:MySQL 8.0
  • 操作系统:Windows 11
  • IDE:VS Code
  • 执行方式:通过IDE运行

已尝试步骤

  1. 将MySQL Connector/J JAR文件添加到引用库中
  2. 验证JAR文件位置正确
  3. 检查代码是否存在语法错误

解决方案

1. 修正VS Code的依赖配置

仅手动放置JAR文件到项目目录无效,需确保VS Code正确识别依赖:

  • 右键JAR文件,选择Add to Build Path,确认项目的.classpath文件中包含类似条目:
    <classpathentry kind="lib" path="path/to/mysql-connector-java-8.0.28.jar"/>
    
  • 若使用Maven,直接在pom.xml中添加依赖:
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.28</version>
    </dependency>
    

2. 检查JAR文件完整性

重新下载Connector/J 8.0.28的JAR包,打开JAR确认内部存在com/mysql/cj/jdbc/Driver.class文件,若缺失说明JAR损坏或版本不符。

3. 移除冗余的类加载代码

Java 6及以上版本会自动通过META-INF/services/java.sql.Driver加载JDBC驱动,可删除Class.forName("com.mysql.cj.jdbc.Driver");这一行,避免类加载冲突。

4. 确认VS Code运行配置

检查.vscode/launch.json中的运行配置,确保使用项目默认classpath:

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "java",
            "name": "App",
            "request": "launch",
            "mainClass": "App",
            "projectName": "你的项目名称"
        }
    ]
}

5. 重启VS Code并清理缓存

重启IDE确保配置生效,必要时可通过Ctrl+Shift+P执行Java: Clean Java Language Server Workspace清理缓存。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 15:35:07