20

java.lang.ClassNotFoundException当我尝试运行我的代码时 出现异常,

我的代码

   try 
   {
     Class.forName("com.mysql.jdbc.Driver");
     Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/simple",
      "root","root");
     Statement stmt=con.createStatement();
     String query="SELECT * FROM CUST";
     ResultSet rs=stmt.executeQuery(query);
     while(rs.next())
     {
          System.out.print(rs.getString("CUST_NAME") +" ");
          System.out.print(rs.getString(2) +" ");
          System.out.print(rs.getString(3) +" ");

     }    
     rs.close();
     stmt.close();
     con.close();    
  }   
  catch (ClassNotFoundException e) 
  {
     e.printStackTrace();
  }
  catch (SQLException e) 
  {
     e.printStackTrace();
  }    

我收到错误

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:188)
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 Simple.MyProg.main(MyProg.java:15)   

我究竟做错了什么?

4

10 回答 10

28

问题不在代码中,而是您没有将驱动程序添加到您的项目中!!!您必须将*.jar驱动程序添加到您的项目中......

试着把它放在你的 lib 目录中,然后重新启动 tomcat ...

问题是Class.forName("com.mysql.jdbc.Driver"); 它试图加载驱动程序,但没有得到它,这就是你得到的原因:

java.lang.ClassNotFoundException。

于 2013-04-05T06:50:52.073 回答
16

将 *.jar 复制到我的 WEB-INF/lib 文件夹中 -> 为我工作。当包含在构建路径上时,每次都会出现这个错误消息。

于 2013-06-27T13:38:43.207 回答
4

您可以从以下路径下载最新的 mysql 驱动程序 jar,然后复制到您的类路径,或者如果您使用的是 Web 服务器,则复制到 tomcat/lib 或 war/web-inf/lib 文件夹。

http://dev.mysql.com/downloads/connector/j/

http://mirrors.ibiblio.org/pub/mirrors/maven2/mysql/mysql-connector-java/5.1.10/mysql-connector-java-5.1.10.jar

于 2013-04-05T07:42:18.157 回答
4

问题与 MySql 驱动程序有关

Class.forName("com.mysql.jdbc.Driver");

将 MySQL jdbc 驱动程序 jar 文件添加到您的类路径中。

我在JDK上也有这个错误。我正确构建了 ClassPath,然后我将“mysql-connector-java-5.1.25-bin”放在这个目录中的“C:\Program Files\Java\jre7\lib\ext”目录中,我有我的 JDK。然后再次编译并运行,然后它工作正常。

于 2013-07-15T07:22:00.410 回答
2

在类路径中包含 jar(jdbc 驱动程序)的路径。

于 2013-04-05T06:49:34.263 回答
2

如果您在运行它时收到此错误,那么可能是因为您没有将 mysql-connector JAR 文件包含到您的网络服务器的 lib 文件夹中。

现在将 mysql-connector-java-5.1.25-bin.jar 添加到您的类路径以及您的网络服务器的 lib 目录中是很重要的。Tomcat lib 路径以 Tomcat 6.0\lib 为例

于 2014-03-04T15:23:14.680 回答
2

如果它是独立程序,请下载 mysql 连接器 jar 并将其添加到您的类路径中。

如果它是一个 Maven 项目,请添加以下依赖项并运行您的程序。

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.37</version>
</dependency>
于 2016-10-13T13:02:53.210 回答
1

请注意,mySQL v8 jar 中的 Driver 类的名称(在编写 mysql-connector-java-8.0.12.jar 时)已更改为com.mysql.cj.jdbc.Driver 您可以通过进入 jdbc jar 并查看META-INF/services/java.sql.Driver文件来自己验证这一点。

于 2018-08-21T01:20:41.257 回答
0

如果您使用的是 Eclipse IDE,请下载 mysql jdbc 连接器 jar 并将该 jar 指向构建路径。项目 Java 构建路径 --> 库 --> 添加外部 jars。连接器可以从http://dev.mysql.com/downloads/connector/j/ 获得

于 2014-02-02T06:42:22.760 回答
0

我有

runtime('mysql:mysql-connector-java')

变成

compile('mysql:mysql-connector-java')

解决了我的问题

于 2017-03-13T21:26:32.210 回答