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

如何修复Liferay中java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver异常

搞定 java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver 错误

我来帮你解决这个驱动类找不到的问题~ 这个错误本质是JVM在运行时找不到MySQL Connector/J的驱动类,虽然你已经加了Maven依赖,但大概率是依赖没正确部署到运行环境,或者存在类路径冲突。结合你提供的代码、配置和堆栈信息,给你几个针对性的解决方案:

1. 确认Maven驱动依赖是否被正确打包到应用中

你用的是MySQL Connector/J 8.0.15,这个版本的驱动类com.mysql.cj.jdbc.Driver是完全正确的(MySQL 8.x不再使用旧的com.mysql.jdbc.Driver),但得确保这个jar包真的跟着你的应用一起部署了:

  • 如果你打包成WAR文件,解压后检查WEB-INF/lib目录里有没有mysql-connector-java-8.0.15.jar;
  • 打开终端执行mvn dependency:tree,看看依赖树里确实包含这个驱动,没有被其他依赖排除掉;
  • 你的依赖配置没指定scope,默认是compile,这没问题,但如果是在Liferay环境里,可能需要调整依赖的部署方式(比如通过Liferay的模块依赖管理来引入驱动)。

2. 检查Liferay服务器的类路径冲突

从堆栈信息能看到你是在Liferay环境运行,这里要注意一个常见坑:

  • 如果Liferay服务器的全局lib目录里有旧版本的MySQL驱动,可能会和你应用内的驱动冲突,导致JVM加载错误的类或者找不到目标类;
  • 要么把服务器全局的旧驱动移除(如果允许的话),要么确保你应用内的驱动jar包优先级更高。

3. 清理缓存并重新构建项目

有时候Maven或IDE的缓存会搞事情,导致依赖没正确更新:

  • 先执行mvn clean install清理旧的构建文件,重新打包;
  • 如果用IDE开发(比如IDEA、Eclipse),同步Maven依赖后重启IDE,确保驱动jar被正确导入到项目里。

额外的小优化(不是必做,但更规范)

虽然这不是导致当前错误的原因,但你的Hibernate配置有个可以优化的地方:
你配置的hibernate.dialect是org.hibernate.dialect.MySQL5Dialect,但搭配MySQL 8.x驱动的话,更推荐用org.hibernate.dialect.MySQL8Dialect,这样能更好地支持MySQL 8.x的新特性~


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:03:09