【问题标题】:ClassNotFoundException: com.mysql.jdbc.Driver [duplicate]ClassNotFoundException:com.mysql.jdbc.Driver [重复]
【发布时间】:2012-02-03 11:25:55
【问题描述】:

这个问题在这里被问了很多,但我仍然无法解决我的问题: 我将mysql-connector-java-5.1.18-bin 放入C:\Program Files\Java\jre6\lib\ext 文件夹。 我有这个代码:

    // Load the database driver
    Class.forName("com.mysql.jdbc.Driver");
    // Get a connection to the database
    Connection conn = DriverManager.getConnection(
                        "jdbc:mysql://localhost:3306/mysql", "root", "4958ps");
    // Get a statement from the connection
    Statement stmt = conn.createStatement() ;
    // Execute the query
    ResultSet rs = stmt.executeQuery( "SELECT * FROM Cust" ) ;
    // Loop through the result set
    while( rs.next() )
        System.out.println( rs.getString(1) ) ;
    // Close the result set, statement and the connection
    rs.close() ;
    stmt.close() ;
    conn.close() ;
} catch( SQLException se ) {
    System.out.println( "SQL Exception:" ) ;
    // Loop through the SQL Exceptions
    while( se != null ) {
        System.out.println( "State  : " + se.getSQLState()  ) ;
        System.out.println( "Message: " + se.getMessage()   ) ;
        System.out.println( "Error  : " + se.getErrorCode() ) ;
        se = se.getNextException() ;
    }          
} catch( Exception e ) {
    e.printStackTrace();
} 

我得到一个带有以下堆栈跟踪的 ClassNotFoundException:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at pack.Test.main(Test.java:14)

我还将CLASSPATH 变量更改为C:\Program Files\Java\jre6\lib\ext\mysql-connector-java-5.1.18-bin 有什么想法吗?

【问题讨论】:

  • 您是否为此使用 Eclipse?您是在编写批处理脚本还是 shell 脚本?
  • @iowatiger08:我正在使用 NetBeans
  • 你把mysql-connector jar 文件放在哪里了?它在类路径上吗?
  • @mcfinnigan:我把它放在C:\Program Files\Java\jre6\lib\ext\mysql-connector-java-5.1.18-bin
  • 不应该 - 除非 NetBeans 没有使用该 JRE。单击您的项目并转到属性-> 库-> 管理平台。检查它默认使用的 JDK,并确保 mysql jar 显示在 Classes 下。

标签: java jdbc classnotfoundexception


【解决方案1】:

bat 文件看起来像

@echo off
set CLASSPATH=program.jar;mysql-connector-java-5.1.18-bin.jar

:start

start javaw.exe MainClass

program.jar(将包含 MainClass 类作为主类)和 mysql.jar 必须位于同一目录中。

对于 Eclipse,您必须设置项目构建路径以包含 mysql...jar。

【讨论】:

【解决方案2】:

您下载的 zip 文件应包含一个名为 mysql-connector-java-5.0.8-bin.jar 或类似名称的文件。版本可能不同。检查它是否存在并检查它是否直接在您的类路径中(而不是在子目录等中)。

如果没问题,请检查您的类路径变量是否未被其他内容覆盖。如果您手动执行程序,请执行以下操作:java -cp "C:\Program Files\Java\jre6\lib\ext\mysql-connector-java-5.0.8-bin.jar:." YourClass

如果您使用的是 Eclipse 等 IDE,请检查那里的构建路径设置。 (在 Eclipse 中,您可以右键单击您的项目 -> 属性 -> Java 构建路径 -> 添加外部 JAR,然后提供连接器的路径...jar。

【讨论】:

    【解决方案3】:

    CLASSPATH 变量不能只是目录,它必须具有实际的 jar 名称。

    【讨论】:

    • 是的,我已经这样做了,我忘了提供我的问题的全名,对不起
    • Windows 上的 Java 也讨厌路径中的空格。
    【解决方案4】:

    我认为问题在于您将 mysql-connector-java-5.1.18-bin 文件放在那里,而不是您必须将“mysql-connector-java-5.0.5.jar”文件放在那里。

    我在 Eclipse(IDE) 中创建了一个 Web 应用程序。因此,如果您在 Eclipse(IDE) 上制作 Web 应用程序,那么您可以将“mysql-connector-java-5.0.5.jar”放在 lib 文件夹中。 下面是我放置“mysql-connector-java-5.0.5.jar”文件的路径...

    C:\Users\Abhishek\workspace\MyProject\WebContent\WEB-INF\lib\mysql-connector-java-5.0.5.jar

    【讨论】:

      【解决方案5】:

      我遇到了同样的问题以及我如何解决它:

      1. 根据使用的服务器下载 .jar: 对于 mySQL,我下载了 mysql-connector-java-5.1.18-bin.jar

      2. 在 SYSTEM VARIABLES 中添加了 CLASSPATH,其中包含所用 .jar 的全名。如果您已经有 CLASSPATH var,请添加它,如 PATH ";Jar/jar 文件名的路径",例如: CLASSPATH = d:\requisites\mySQL_connector\mysql-connector-java-5.1.18-bin.jar

      3. 在 Eclipse 项目中: 右键单击项目->构建路径-.配置构建路径。添加外部 JAR 并添加 jar 文件。当您成功执行此步骤时,它将出现在“参考库”中的项目中

      4. 一个重要的步骤(如果您使用我正在使用的 Android 开发工具框架)是在您的应用程序的 libs 文件夹中添加该 JAR 文件。我通过将 jar 从我的路径(d:\requisites\mySQL_connector)复制粘贴到我的项目的 libs 文件夹来做到这一点。

      重新启动项目,它在第二次运行时工作。

      【讨论】:

        【解决方案6】:

        试试这个

        如果您创建动态 Java 项目(在 Eclipse 中)

        1. 检查各个项目的构建路径

          • 第 1 步。右键单击您的项目并选择属性

          • 第 2 步。在右侧,您将获得部署程序集

          • 第 3 步。单击添加并从文件系统中选择存档

          • 第 4 步。点击再次添加并选择您各自的数据库 jar 文件。

        【讨论】:

          猜你喜欢
          • 2021-05-15
          • 1970-01-01
          • 2012-11-23
          • 1970-01-01
          • 1970-01-01
          • 2013-10-19
          • 2012-01-10
          • 1970-01-01
          • 2012-05-11
          相关资源
          最近更新 更多