首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ClassNotFoundException com.mysql.jdbc.Driver

ClassNotFoundException com.mysql.jdbc.Driver
EN

Stack Overflow用户
提问于 2009-10-18 19:34:26
回答 16查看 281.5K关注 0票数 41

这个问题在这里可能已经问了很多次了。在谷歌上搜索了上面的错误并进行了一些更新后,我不明白为什么我仍然得到这个错误。我已经将我的驱动程序-- mysql-connector-java-5.1.5-bin放到了类路径中:

代码语言:javascript
复制
Java_Home\jre\lib\
Java_Home\jre\lib\ext\
Java_Home\lib

我用来连接mysql数据库的代码是:

代码语言:javascript
复制
try{
Class.forName("com.mysql.jdbc.Driver");

Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/mail","root","");

Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select message_body from deadletter");
String dbtime;
while (rs.next()) {
dbtime = rs.getString(1);
System.out.println(dbtime);
} 

con.close();

}
catch (SQLException e) {
        System.out.println("Connection Failed! Check output console");
        e.printStackTrace();
        }

    }

而上述异常的完整堆栈跟踪是:

代码语言:javascript
复制
java.lang.ClassNotFoundException: com.mysql.jdbc:Driver
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:307)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    at java.lang.Class.forName0(Native Method)  
    at java.lang.Class.forName(Class.java:169)
    at mail.main(mail.java:114)  

现在,我在这里做什么呢?

EN

回答 16

Stack Overflow用户

回答已采纳

发布于 2009-10-18 19:42:51

最常见的原因是在加载类的位置上有一些冲突。例如,如果你有两个位置,一个有JDBC驱动程序,另一个没有,那么如果你的类加载器从第一个位置加载,而来自第一个位置的某个类想要使用驱动程序-驱动程序就不在那里。因此,请查找正在使用您的驱动程序的重复JAR

票数 23
EN

Stack Overflow用户

发布于 2012-11-02 14:21:00

我也为同样的问题而苦苦挣扎,最终找到了解决方案。只需将MySql-Connector.jar复制到Tomcat的lib文件夹中,然后从webapp的lib文件夹中删除jar,然后运行项目。

票数 26
EN

Stack Overflow用户

发布于 2010-12-28 08:11:32

我也有同样的问题,但经过长时间的搜索,我找到了这个:http://www.herongyang.com/JDBC/MySQL-JDBC-Driver-Load-Class.html

但我做了些改变。我将驱动程序放在与我的ConTest.java文件相同的文件夹中,并编译它,生成ConTest.class

所以在这个文件夹中有

代码语言:javascript
复制
ConTest.class
mysql-connector-java-5.1.14-bin.jar

我写了这篇文章

代码语言:javascript
复制
java -cp .;mysql-connector-java-5.1.14-bin.jar ConTest

这样,如果您不使用任何IDE,只需在windows中使用cmd,或者在linux中使用shell。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1585811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档