这个问题可能在这里问过很多次了。经过一些谷歌搜索上述错误并进行了一些更新后,我不明白为什么我仍然收到该错误。我已经将驱动程序mysql-connector-java-5.1.5-bin放在类路径中:
Java_Home\jre\lib\ Java_Home\jre\lib\ext\ Java_Home\lib
我用来连接到mysql数据库的代码是:
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(); } }
并且上述异常的完整stacktrace为:
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)
现在,我在这里怎么了?
最常见的原因是在加载类的位置上存在一些冲突。例如,如果您有2个位置,一个有JDBC驱动程序,而另一个没有,那么如果您的类加载器是从第1个位置加载的,而第1个位置的某个类想要使用该驱动程序-该驱动程序不存在。因此,查找正在使用您的驱动程序的重复JAR