eclipse - 如何在 Eclipse web 项目中安装 JDBC 驱动程序而不会遇到 java.lang.ClassNotFoundexception

标签 eclipse jakarta-ee jdbc classnotfoundexception

There is a VERY similar question我的,但就我而言,我的构建路径中没有任何重复的 jar,因此该解决方案对我不起作用。我已经在谷歌上搜索了几个小时,但我在那里找到的解决方案都没有真正解决我的问题。我正在为作业创建一个具有一些数据库连接的网站。我正在使用 MySQL 数据库,在 Eclipse 中开发并在 Windows 上运行。

我不断收到 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 代码如下:

import java.sql.*;
//...
public void someMethodInMyServlet(PrintWriter out)
{
    Connection connection = null;
    PreparedStatement query = null;
    try {

        out.println("Create the driver instance.<br>");
        Class.forName("com.mysql.jdbc.Driver").newInstance();

        out.println("Get the connection.<br>");
        connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "secret");
        query = connection.prepareStatement( "SELECT * FROM customers");

        //...
    } catch (Exception e)
    {
        out.println(e.toString()+"<br>");
    }
}
//...

当我运行上面的代码时,我得到以下输出:

Create the driver instance.
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

它没有通过 Class.forName... 行,我不明白为什么!这是我所做的:

  1. 下载 mysql 连接器。
  2. 将其放入我的 MySQL 文件夹 C:\Program Files\MySQL\mysql-connector-java-5.1.12\mysql-connector-java-5.1.12-bin.jar
  3. 在 Eclipse 中打开项目属性。
  4. 将外部 Jar 添加到我的构建路径,我选择了 mysql-connector-java-5.1.12-bin.jar

每次我尝试使用 servlet 时,我都会遇到相同的错误,无论我是否有 jar 在那里。你能帮我解决这个问题吗?

最佳答案

对于 Web 应用程序要使用的 JAR 文件风格的每个“第 3 方”库,只需将物理 JAR 文件复制/拖放到 Web 应用程序的 /WEB-INF/lib .然后它将在 webapp 的默认类路径中可用。此外,Eclipse 足够聪明,可以注意到这一点。无需麻烦构建路径。但是,请务必删除您之前添加的所有不必要的引用,否则它可能会发生冲突。

另一种方法是通过将物理 JAR 文件放入服务器自己的 /lib 文件夹中,将其安装在服务器本身中。当您使用服务器提供的 JDBC 连接池数据源时,这是必需的,而这又需要 MySQL JDBC 驱动程序。

另见:

关于eclipse - 如何在 Eclipse web 项目中安装 JDBC 驱动程序而不会遇到 java.lang.ClassNotFoundexception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20925219/

相关文章:

mysql - 如何最好地处理多对多并发冲突?

java - 为什么我得到一个从打开的 MySQL 连接关闭的 java.sql.PreparedStatement?

java - 如何使用 db=SQL Server 2008 Express 在 java 中执行批量插入语句(使用 JDBC)

Eclipse:在两个编辑器中打开同一个文件?

java - Maven 项目中 TLD 文件的正确/推荐位置是什么

java - 来自自定义标签和 IllegalStateExceptions 的 RequestDispatcher.include()

java - Tomcat - 上下文路径匹配究竟是如何工作的?

java - 如何使用 Maven 添加 Postgresql jdbc 驱动程序 9.2-1003-jdbc3?

java - HelloWorldSWT eclipse 的运行时问题

java - Eclipse with Lombok - 搜索 getter 和 setter 用法