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

Java连接MySQL遇报错:找不到合适驱动/类未找到,求排查解决

Java访问MySQL驱动加载问题

环境信息

  • 操作系统:Ubuntu 20.04.5 LTS (GNU/Linux 5.15.79.1-microsoft-standard-WSL2 x86_64)
  • MySQL版本:Ver 8.0.31-0ubuntu0.20.04.2 for Linux on x86_64 ((Ubuntu))
  • Java版本:javac 11.0.17
  • MySQL驱动包:mysql-connector-j-8.0.31.jar(已通过jar tf /usr/share/java/mysql-connector-j-8.0.31.jar确认包含com/mysql/cj/jdbc/Driver.class)

操作与报错情况

编译命令

javac -cp /usr/share/java/mysql-connector-j-8.0.31.jar TestApplication.java

运行命令

java TestApplication

报错详情

  1. 未显式加载驱动时:

java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/opiejbc1

  1. 添加Class.forName("com.mysql.cj.jdbc.Driver")后:

java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver

问题原因

编译时指定了驱动包作为类路径,但运行时没有将驱动包加入类路径,导致JVM无法找到驱动类文件。

解决方案

运行命令时必须同样指定类路径,包含当前目录(编译生成的.class文件所在位置)和驱动包路径:

java -cp .:/usr/share/java/mysql-connector-j-8.0.31.jar TestApplication
  • . 代表当前目录,确保JVM能找到编译后的TestApplication.class
  • : 是Linux系统下类路径的分隔符(Windows系统用;)
  • 后面跟着驱动包的完整路径,让JVM能加载到MySQL驱动类

补充说明:Java 8及以上(JDBC 4.2规范)支持驱动自动加载,只要驱动包在类路径中,无需显式调用Class.forName,修正运行类路径后可去掉该行代码。

内容的提问来源于stack exchange,提问作者Jesse Brent Coats

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 19:15:31