连接数据库ClassNotFoundException的解决办法

  前几天我在测试一个简单的java应用连接mysql数据库时,遇到了一个以前也遇到过的烦人问题。Class.forName(xx.xx.xx);抛出异常,此异常就是ClassNotFoundException。一开始我从网上找了一些方法,但是都无法成功,最后老师点明了错误。现在Class.forName加载出现ClassNotFoundException的几个原因归结一下。

  首先得说明为什么出现这个异常,Class.forName(xxx.xx.xx);的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段。java连接Mysql数据库需要依赖一个第三方的jar包mysql-connector-java-5.1.7-bin.jar,Class.forName("mysql-connector-java-5.1.7-bin.jar"),就是加载这个类,如果加载不到自然就抛出ClassNotFoundException,如果要成功加载该jar包,就需要将jar加入路径,但!不同的环境jar路径设置是不同的。

  如果是命令行模式,需要把jar包放入所在路径加入classpath中,这样java机就可以找到jar包并加载(这也是网上普遍的解决办法)。

  我使用的是eclipse IDE,在这种模式下,使用的路径是eclipse自身的路径,如果使用网上的办法是没办法解决的。以下是3种不同项目的方法,普通java project项目下没有lib目录,推荐新建一个lib目录放入jar包,eclipse刷新在右击lib,build path,将其加入路径中,就可以了(也可以jar包直接放入项目build path,建议放入lib中); JEE项目将jar放入项目lib文件夹就行;javaweb项目,如果使用tomcat容器,将jar放入项目中的WEB-INF->lib文件夹中。

  这些就是我的解决办法,如果有什么不对的欢迎大家指出。

阅读更多
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/sinat_19435069/article/details/40479235
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭