添加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运行
已尝试步骤
- 将MySQL Connector/J JAR文件添加到引用库中
- 验证JAR文件位置正确
- 检查代码是否存在语法错误
解决方案
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
相关产品推荐
相关产品推荐

