抛出java.lang.ClassNotFoundException:com.mysql.jdbc.Driver

时间:2013-04-05 06:46:51

标签: java exception

我在尝试运行代码时遇到异常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)   

我做错了什么?

10 个答案:

答案 0 :(得分:24)

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

尝试将其放入lib目录,然后重新启动tomcat ...

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

  

抛出java.lang.ClassNotFoundException。

答案 1 :(得分:14)

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

答案 2 :(得分: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

答案 3 :(得分:4)

问题与MySql驱动程序

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

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

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

答案 4 :(得分:2)

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

答案 5 :(得分:1)

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

现在将mysql-connector-java-5.1.25-bin.jar添加到类路径以及web服务器的lib目录中非常重要。 Tomcat lib路径以Tomcat 6.0 \ lib

为例

答案 6 :(得分:1)

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

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

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.37</version>
</dependency>

答案 7 :(得分: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文件来自己验证这一点。

答案 8 :(得分:0)

如果您正在使用eclipse ide,请下载mysql jdbc连接器jar并将该jar指向构建路径。项目Java构建路径 - &gt;图书馆 - &gt;添加外部罐子。 连接器可以从http://dev.mysql.com/downloads/connector/j/

获得

答案 9 :(得分:0)

我有

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

已更改为

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

解决了我的问题