【问题标题】:java.lang.ClassNotFoundException:com.mysql.jdbc.Driver [duplicate]java.lang.ClassNotFoundException:com.mysql.jdbc.Driver [重复]
【发布时间】:2013-03-27 11:48:18
【问题描述】:

当我尝试运行我的代码时,我收到了异常 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)   

我做错了什么?

【问题讨论】:

  • 你的 jar(包含 Driver 的那个)在类路径中吗?
  • 只需将 mysql-connector-java-version-bin.jar 复制到您的 lib 目录即可。如果你使用tomcat,它会在你的安装路径/lib..
  • 如果使用maven?只需添加 Maven 依赖项:mvnrepository.com/artifact/mysql/mysql-connector-java

标签: java exception


【解决方案1】:

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

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

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

java.lang.ClassNotFoundException。

【讨论】:

  • 为什么不能从库中读取 > 引用库?由于添加到构建路径仅添加到此文件夹。如果您尝试直接在您的代码中导入该类,那行得通吗?
【解决方案2】:

将 *.jar 复制到我的 WEB-INF/lib 文件夹中 -> 为我工作。当通过 buildpath 包含时,每次都会出现此错误消息。

【讨论】:

  • 这个也对我有用。谢谢
  • 除了将其复制到每个项目的WEB-INF/lib 之外,还有什么替代方法?
  • 这个技巧也对我有用。谢谢。
【解决方案3】:

您可以从以下路径下载最新的 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

【讨论】:

    【解决方案4】:

    问题与MySql Driver有关

    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。然后再次编译并运行,就可以正常工作了。

    【讨论】:

    • 我也遇到同样的错误我该如何设置 classPath 是否与在环境变量中设置 CLASSPATH 变量有关?
    【解决方案5】:

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

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

    为例

    【讨论】:

      【解决方案6】:

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

      【讨论】:

        【解决方案7】:

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

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

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

        【讨论】:

          【解决方案8】:

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

          【讨论】:

            【解决方案9】:

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

            【讨论】:

              【解决方案10】:

              我有

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

              改为

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

              解决了我的问题

              【讨论】:

                猜你喜欢
                • 2021-07-09
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2020-02-22
                • 1970-01-01
                • 1970-01-01
                • 2014-05-09
                相关资源
                最近更新 更多