> 文章列表 > c3p0报错java.lang.NoClassDefFoundError: com/mchange/v2/ser/Indirector

c3p0报错java.lang.NoClassDefFoundError: com/mchange/v2/ser/Indirector

c3p0报错java.lang.NoClassDefFoundError: com/mchange/v2/ser/Indirector

1. 问题由来

今天第一次学习到c3p0的时候,学习资料上使用的是0.9.1.2版本
我偷懒使用的是0.9.2版本。但是运行的时候会报错:
c3p0报错java.lang.NoClassDefFoundError: com/mchange/v2/ser/Indirector

网上搜索了一下这个错误,很多人说去安装mchange-commons-0.2.jar 这个包
但是我看学习资料上没有去另外安装这个包,也没有报错。我感觉是jar包的版本问题

2. 一探究竟

① 从 mvnrepository.可以搜索到2个c3p0:
c3p0报错java.lang.NoClassDefFoundError: com/mchange/v2/ser/Indirector
② 第一个c3p0是从0.9.2版本开始的
https://mvnrepository.com/artifact/com.mchange/c3p0

③ 第二个c3p0是截止到 0.9.1.2
https://mvnrepository.com/artifact/c3p0/c3p0/0.9.1.2

④ 2个c3p0都是官方的,只不过存储地址不一样。
而且从0.9.2版本 以后需要搭配 mchange-commons-0.2.jar 这个包使用:
c3p0报错java.lang.NoClassDefFoundError: com/mchange/v2/ser/Indirector

我为了和学习资料保持一致,就换成了0.9.1.2版本 这个版本,所它不需要另外引用其他jar包

3. 正确告别

删除0.9.2版本 可能会提示删除失败,即使屏蔽引用代码
c3p0报错java.lang.NoClassDefFoundError: com/mchange/v2/ser/Indirector
这种情况重启idea,就可以了。重启以后,就会发现需要删除的版本没有了:
c3p0报错java.lang.NoClassDefFoundError: com/mchange/v2/ser/Indirector