java.lang.ClassNotFoundException:Eclipse中的com.mysql.jdbc.Driver

时间:2013-07-05 08:48:44

标签: java jdbc mysql-connector

代码有什么问题,调试时有很多错误。我正在编写一个单例类的代码来连接数据库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的新手。请帮忙。

19 个答案:

答案 0 :(得分:113)

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

  • MAVEN PROJECTS SOLUTION

将mysql-connector依赖项添加到pom.xml项目文件:

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

以下是您的所有版本:https://mvnrepository.com/artifact/mysql/mysql-connector-java

  • 所有项目解决方案

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

右键单击项目 - &gt;构建路径 - &gt;配置构建路径

Libraries Tab Add External JarSelect你的jar。

您可以找到mysql-connector here

的zip
  • 说明:

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

答案 1 :(得分:50)

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

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

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

为例

答案 2 :(得分:11)

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

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

答案 3 :(得分:11)

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

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

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

java -cp C:\lib\* Main

答案 4 :(得分:9)

在类路径download from here

中检查jar (mysql-connector-java-bin)

答案 5 :(得分:8)

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

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

Right Click the project -- > build path -- > configure build path

在图书馆标签中按Add External Jar并选择你的广告。

答案 6 :(得分:6)

每个人都写了一个答案,但我仍然感到惊讶的是,没有人使用最好的简单方法实际回答它。
人们回答包括jar文件。但是,错误仍然会发生。

  

原因是,在运行项目时未部署jar。因此,我们需要做的就是告诉IDE也部署这个jar。

这里的人回答了很多次,因此将该jar文件放在WEB-INF的lib文件夹中。看起来还可以,但为什么要手动进行。有简单的方法。检查以下步骤:

  

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

     

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

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

  

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

Before Adding

After Adding

答案 7 :(得分:3)

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

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

答案 8 :(得分:2)

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

答案 9 :(得分:2)

在项目中进入文件夹库 - &gt;右键单击 - &gt;添加库 - &gt; Mysqlconnector 5.1

答案 10 :(得分:1)

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

答案 11 :(得分:1)

在我看来,netbeans版本maven项目7.2.1看似微不足道。项目中有一个名为dependencies的文件夹。右键单击然后它会弹出一个弹出窗口,您可以在其中搜索包。在查询区域中输入

mysql-connector

它会调出匹配(似乎它会对某些存储库执行此操作)。双击然后安装。

答案 12 :(得分:0)

由于未定义类路径,也会发生异常。

经过数小时的研究并且经历了数百页,问题在于未定义库的类路径。

在Windows机器中按如下方式设置类路径

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

答案 13 :(得分:0)

我理解你的问题在你的pom.xml中添加这个依赖关系你的问题将会解决,

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

答案 14 :(得分:0)

如果您正在使用tomcat,那么您还应该将数据库连接器jar文件复制到tomcat / lib。这对我有用

答案 15 :(得分:0)

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

答案 16 :(得分:0)

自2020年起必须使用此

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

答案 17 :(得分:0)

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

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

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

对于这个简单的应用程序,我不使用Maven或其他管理器。我正在手动添加罐子。

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

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

我自己的调试:尝试过其他事情: 运行时配置:尝试删除库并一个一个地添加jar,然后查看。 -在这里,您必须一个一个地删除所有jar,没有全选并在运行配置中立即在eclipse中删除。因此,错误消息从一个罐子变为另一个罐子。

希望这对某人有帮助。

答案 18 :(得分:0)

I was also facing the same problem

下载 mysql-connector-java jar文件

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

也希望为您工作!!