【问题标题】:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver in Eclipsejava.lang.ClassNotFoundException: com.mysql.jdbc.Driver 在 Eclipse
【发布时间】:2013-07-03 07:31:44
【问题描述】:

代码有什么问题,调试时有很多错误。我正在为单例类编写代码以连接数据库 mysql。

这是我的代码

package com.glomindz.mercuri.util;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;

public class MySingleTon {
    String url = "jdbc:mysql://localhost:3306/";
    String dbName = "test";
    String driver = "com.mysql.jdbc.Driver";
    String userName = "root";
    String password = "";

    private static MySingleTon myObj;   
    private Connection Con ;
    private MySingleTon() {
        System.out.println("Hello");
        Con= createConnection();
    }

    @SuppressWarnings("rawtypes")
    public Connection createConnection() {
        Connection connection = null;
        try {
            // Load the JDBC driver
            Class driver_class = Class.forName(driver);
            Driver driver = (Driver) driver_class.newInstance();
            DriverManager.registerDriver(driver);
            connection = DriverManager.getConnection(url + dbName);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        }
        return connection;
    }

    /**
     * Create a static method to get instance.
     */
    public static MySingleTon getInstance() {
        if (myObj == null) {
            myObj = new MySingleTon();
        }
        return myObj;
    }

    public static void main(String a[]) {
        MySingleTon st = MySingleTon.getInstance();
    }
}

我是 Java 新手。请帮忙。

【问题讨论】:

  • 驱动 jar 在你的类路径中吗?
  • 确保您已在 getInstance() 上同步
  • 如果您在运行时遇到错误,您需要将 jar 文件粘贴到您的网络服务器的 lib 目录中。但是,如果您在编译时遇到错误,请在构建路径中添加 jar。

标签: java jdbc mysql-connector


【解决方案1】:

项目中似乎没有包含mysql 连接库。按照建议的解决方案之一解决问题:

  • MAVEN 项目解决方案

在pom.xml项目文件中添加mysql-connector依赖:

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

所有版本都在这里:https://mvnrepository.com/artifact/mysql/mysql-connector-java

  • 所有项目解决方案

手动将jar库添加到项目中。

右键项目-->构建路径-->配置构建路径

Libraries Tab Add External JarSelect 你的罐子。

您可以找到 mysql-connector here 的 zip

  • 说明:

在构建项目时,java 会抛出异常,因为找不到 mysql 连接库中的文件(com.mysql.jdbc.Driver 类)。解决方法是在项目中添加库,java会找到com.mysql.jdbc.Driver

【讨论】:

  • 如果我们不使用任何 IDE 而只是在终端上运行怎么办?那么如何处理这个问题呢?
  • 按照@Asad 的建议,在您将mysql-connector-java-8.0.15.jar 文件添加到apache-tomcat-9.0.16\lib 文件夹之前,问题不会得到解决。
【解决方案2】:

如果您在 IDE 中遇到错误(编译时错误),您需要将 mysql-connector jar 文件添加到您的库中,并将其添加到您引用的项目库中。

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

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

【讨论】:

  • 如果我们不使用任何 IDE 而只是在终端上运行怎么办?那么如何处理这个问题呢?
  • 如果您没有使用任何 IDE,那么您应该将 jar 文件路径添加到您的类路径
  • 添加到服务器库是这里需要注意的重点,谢谢为我工作
【解决方案3】:

每个人都写了一个答案,但我仍然很惊讶没有人用最简单的方法真正回答它。
包含jar文件的人回答。但是,错误仍然会发生。

原因是项目运行时没有部署jar。所以,我们需要做的是,告诉 IDE 也部署这个 jar。

这里的人已经回答了很多次,把那个jar文件放在WEB-INF的lib文件夹中。这看起来不错,但为什么要手动操作。有简单的方法。检查以下步骤:

第 1 步:如果您还没有将 jar 文件引用到项目中,请像这样引用它。

右键单击项目并转到项目属性。 然后,转到java构建路径,然后通过它添加外部jar文件。

但这仍然不能解决问题,因为通过构建路径添加外部 jar 仅有助于编译类,并且在您运行项目时不会部署 jar。 为此,请按照此步骤操作

右键单击项目并转到项目属性。 然后,转到 Deployment Assembly 然后按 Add ,然后转到 java build path entries 并添加您的库,无论是 jstl,mysql或任何其他 jar 文件。将它们添加到部署中。 下面是展示它的两张图片。

【讨论】:

  • 谢谢老兄。那行得通。为什么其他人没有提到这一点可能是因为这是仅使用 Eclipse 的动态 Web 应用程序的解决方案
  • @sayka 是的,可能是这样。
  • @TahirHussainMir 非常感谢。这个答案真的很有用:-)
  • 所有其他答案让我哭了。非常感谢。这对我有用。
  • 这对我也有用...谢谢 Tahir :)
【解决方案4】:

对于基于 Gradle 的项目,您需要依赖于 MySQL Java Connector

dependencies {
    compile 'mysql:mysql-connector-java:6.0.+'
}

【讨论】:

  • 最终为我工作的是runtime 'mysql:mysql-connector-java:6.0.+'
【解决方案5】:

在你的类路径download from here中检查jar(mysql-connector-java-bin)

【讨论】:

    【解决方案6】:

    您必须在类路径中包含 MySQL MySQL Connector Jar 的驱动程序 jar。

    如果您使用的是 Eclipse: How to add dependent libraries in Eclipse

    如果您使用命令行,请使用 java 的 -cp 参数包含驱动程序 jar 的路径。

    java -cp C:\lib\* Main
    

    【讨论】:

    • 如果我们不使用任何 IDE 而只是在终端上运行怎么办?那么如何处理这个问题呢?
    • 使用 -cp 会出现无法找到或加载主类错误。是否需要将 Main 类放到另一个文件夹中?
    【解决方案7】:

    JDBC API 主要由独立于任何数据库工作的接口组成。每个实现 JDBC API 的数据库都需要一个特定于数据库的驱动程序。

    首先从 www.mysql.com 下载 MySQL 连接器 jar,然后:

    Right Click the project -- &gt; build path -- &gt; configure build path

    在库选项卡中按 Add External Jar 并选择您的 jar。

    【讨论】:

      【解决方案8】:

      对于基于 Maven 的项目,您需要一个依赖项。

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

      【讨论】:

      • 为什么选择 PostgreSQL?问题是关于 MySQL 的。
      • 编辑答案以匹配问题
      【解决方案9】:

      在项目中进入文件夹Libraries-->右键-->添加库-->Mysqlconnector 5.1

      【讨论】:

        【解决方案10】:

        驱动程序连接器不在您的构建路径中。配置构建路径并将其指向“mysql-connector-java-5.1.25-bin.jar”(检查您使用的版本)。或者,您可以使用 maven :D

        【讨论】:

          【解决方案11】:

          对于 IntelliJ Idea,转到您的项目结构(文件、项目结构),并将 mysql 连接器 .jar 文件添加到您的全局库中。在那里,右键单击它并选择“添加到模块”。点击应用/确定,您应该一切顺利。

          【讨论】:

            【解决方案12】:

            这需要从 2021 年开始使用

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

            【讨论】:

            • 这太可笑了,我讨厌 java。顺便说一句,谢谢
            • 每个人都讨厌 Java,期间。
            【解决方案13】:

            在我看来,netbeans 版本的 maven 项目 7.2.1 可能看起来很琐碎。项目中有一个名为 dependencies 的文件夹。右键单击,然后它会弹出一个弹出窗口,您可以在其中搜索包。在查询区放

            mysql-connector
            

            它会调出匹配项(似乎它是针对某个存储库执行此操作的)。双击安装。

            【讨论】:

              【解决方案14】:

              这是因为WEB-INF文件夹不存在在错误中的子目录中的位置。您可以编译应用程序以使用 public_html 下的 WEB-INF 文件夹,或者将 WEB-INF 文件夹复制到子文件夹中,如上面的错误所示。

              【讨论】:

                【解决方案15】:

                也可能由于未定义类路径而发生异常。

                经过数小时的研究和数百页的阅读,问题是库的类路径没有定义。

                在你的windows机器中设置类路径如下

                set classpath=path\to\your\jdbc\jar\file;.
                

                【讨论】:

                  【解决方案16】:

                  我了解您的问题,在您的 pom.xml 中添加此依赖项,您的问题将得到解决,

                  https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.38

                  【讨论】:

                    【解决方案17】:

                    如果您使用的是 tomcat,那么您还应该将数据库连接器 jar 文件连同项目目录一起复制到 tomcat/lib。这对我有用

                    【讨论】:

                      【解决方案18】:

                      我正在 Eclipse IDE 中使用 SQLite 数据库开发一个简单的 JavaFX11 应用程序。为了生成报告,我添加了 Jasper jars。突然它抛出 "THIS" 错误。

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

                      运行良好(在此添加之前)。但是突然!

                      我没有为这个简单的应用程序使用 maven 或其他管理器。我正在手动添加罐子。

                      我创建了“用户库”并从外部文件夹添加了我的 jar。

                      问题发生区域: 我的“用户库”被标记为系统库。我刚刚删除了标记。现在它不是系统库。 “现在我的项目运行良好”。

                      自己调试:尝试了其他方法: AT RUN CONFIGURATION:尝试删除库并一个接一个地添加 jar 并查看。 - 这里你必须一个一个地删除所有的jar,现在在运行配置中没有全选并在eclipse中删除。所以错误信息会从一个罐子变成另一个罐子。

                      希望这对某人有所帮助。

                      【讨论】:

                        【解决方案19】:
                        I was also facing the same problem
                        

                        下载mysql-connector-java jar 文件

                        粘贴到C:\Program Files\Apache Software Foundation\Tomcat 9.0\lib

                        希望这对你也有用!!

                        【讨论】:

                          猜你喜欢
                          • 2011-05-13
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 2012-01-27
                          相关资源
                          最近更新 更多