java.lang.ClassNotFoundException: com.mysql.jdbc.Driver解决方案

        昨天整理桌面的时候将桌面的一堆文件移动到F盘去了,结果导致原来建的一些项目名称全部出现红色感叹号,打开一看,原来是因为我把hibernate的那些jar包移走了,导致user library里那些jar在原来的路径里找不到了,所以出现红色感叹号,在写新的项目的时候就不能把原来写的项目copy过来改了,只好重新新建了个java project,然后重新导包,编好代码运行一下,报了如下错误:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver。

       错误显示没有找到MySQL的驱动,第一选择就是去查看MySQL驱动包到底导入没,看了一下确实导入了。难道是我的配置文件出错了?不应该啊,我从hibernate文档里copy进去的,而且前几天也是这样copy进去的,没出问题,但还是仔细去看了一眼,并跟以前的项目对照了一下 ,没错。

        既然配置文件没出问题,只可能是MySQL驱动包出问题了,果断把这个驱动包remove了,再运行,还是这个错误。也就是说摩罗我这个驱动包放在项目里和没放在项目里没任何区别,难道是包出问题了?应该不会,没动过,只好再把驱动包导入,这时奇迹出现了,运行成功了。仔细回想为啥是这样,后来才发现原来我刚开始导入这个驱动包手快直接ctrl+v复制进去了,并没有add to build path里去。果断把这个包remove了,再试试直接复制进去,果然又出现这个情况了。

       其实导包的时候是可以复制进去,但必须进行add to build path这个步骤,或者直接通过add external jars来导包。

       最后讲讲这个问题在web项目里咋解决:

        a.确认包已经被导入web工程目录。
        b.把mysql-connector-java-3.1.13-bin.jar 导入到tomcat的lib目录下面就ok了。

        因为在web项目中,当Class.forName("om.mysql.jdbc.Driver");时myeclipse是不会去查找字符串,不会去查找驱动的。所以只需要把mysql-connector-java-3.1.13-bin.jar   copy到tomcat下lib目录就可以了。

        当然在在java项目中,只需要引入mysql-connector-java-5.1.7-bin.jar就可以运行java项目。

        最后插一个新犯的错误,我原来做项目都用的铁通的无线网,今天用联通的,然后又出现了错误:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver。首先就排除了上面那些错误原因,因为全是从原来项目copy项目环境过来的,jar包没问题,引入的方式也是正确的,所以就怀疑是连接时的ip写错了,毕竟今天换网才出现的这个问题,而且我的MySQL是装在虚拟机里的,于是进虚拟机->运行->cmd->ipconfig里查了ip,发现IP由原来的192.168.199.230变成192.168.1.111,而且主机的ip地址也从192.168.199.160变成192.168.1.108。显然ip地址变了,于是就把配置文件里的MySQL服务器地址改成了192.168.1.111,然后顺利连接成功了。

        最后解释一下许多人疑惑的问题:为什么自己从ip138网站查出来的ip地址和自己通过cmd->ipconfig查出来的地址为啥是不一样的?其实这个192.168.*.*是私网ip地址,通过地址转化(NAT)就可以转化成公网ip了。而这个公网IPj就是你从ip138网站上查出来的那个IP地址。

       这里插一句题外话,使用虚拟机的时候有可能出现虚拟机ping主机能ping通,主机ping虚拟机却ping不通,这个问题在虚拟机配置的时候将NAT模式切换成桥接模式就可以解决。

      总结一下解决办法:

       1.检查MySQL驱动包有问题没,在网上下载的MySQL驱动包有可能会出问题,尽量下载那种压缩包。摩罗我以前就连着下载了好几个jar包都出问题,最后重新下载了个 压缩包,而不是直接的jar包才解决,因为压缩包不会那么容易丢失文件。

       2.如果MySQL和MyEclipse不是装在同一台机器上,或者是MySQL是装在虚拟机里的,必须查看连接语句里的ip地址是否正确。

       3.检查jar包导入的方式正确与否,如果是直接复制进去的,就必须add to build path或者直接通过add external jars来导包。

       4.如果是web项目,就必须把mysql-connector-java-3.1.13-bin.jar   copy到tomcat下lib目录下,然后project->clean一下。

       5.还不能解决,可以考虑把mysql-connector-java-3.1.13-bin.jar的路径放到classpath下面


尊重版权,转载请不要删除下方二维码并注明本文链接

                           欢迎关注行者摩罗微信公众号(xingzhemoluo),共同交流编程经验,扫描下方二维码即可;

                                                java.lang.ClassNotFoundException: com.mysql.jdbc.Driver解决方案_第1张图片

你可能感兴趣的:(hibernate)