依赖库已存在却抛出java.lang.ClassNotFoundException问题求助
解决java.lang.ClassNotFoundException: com.mysql.jdbc.Driver问题
嘿,这个问题我太熟了!碰到java.lang.ClassNotFoundException: com.mysql.jdbc.Driver,本质就是你的项目找不到MySQL JDBC驱动包而已,咱们一步步来搞定它:
先确认驱动包是否在项目类路径里
如果你是普通Java项目,得把MySQL的JDBC驱动jar包(比如mysql-connector-java-x.x.x.jar)放到项目的lib目录,还要在IDE里把它设为项目库——比如IDEA右键jar选「Add as Library」,Eclipse里选「Build Path -> Add to Build Path」。
要是用Maven管理项目,直接在pom.xml里加对应的依赖就行,记得版本要和你的MySQL版本匹配:<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.33</version> <!-- 换成适配你MySQL的版本 --> </dependency>另外要注意:如果你的MySQL是8.0及以上版本,旧的
com.mysql.jdbc.Driver已经被弃用了,官方推荐用com.mysql.cj.jdbc.Driver,记得把导入语句也换成这个!Web项目要检查部署配置
你这是Servlet项目,光在IDE里配置还不够,得确保驱动包被部署到服务器的正确位置:- 手动部署的话,把驱动jar放到Tomcat的
webapps/你的项目名/WEB-INF/lib目录下; - 用IDE自动部署的话,去检查项目部署配置(比如IDEA的「Project Structure -> Artifacts」里,看看
WEB-INF/lib下有没有包含驱动jar)。
- 手动部署的话,把驱动jar放到Tomcat的
可选但推荐:去掉显式的驱动类导入
JDBC 4.0之后,只要驱动包在类路径里,JDBC会自动加载驱动类,完全不用显式导入com.mysql.jdbc.Driver或者手动注册驱动。你可以直接删掉那行导入,写连接代码就行:String dbUrl = "jdbc:mysql://localhost:3306/你的数据库名?useSSL=false&serverTimezone=UTC"; Connection conn = DriverManager.getConnection(dbUrl, "你的用户名", "你的密码");这样还能避免因为驱动类路径变更导致的问题。
内容的提问来源于stack exchange,提问作者Ilan
相关产品推荐
相关产品推荐

