如何在不面向java.lang.ClassNotFoundexception的情况下在Eclipse Web项目中安装JDBC驱动程序

Kir*_*ril 22 eclipse jdbc java-ee classnotfoundexception

有一个非常类似的问题,但在我的情况下,我的构建路径中没有任何重复的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>");
    }
}
//...
Run Code Online (Sandbox Code Playgroud)

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

Create the driver instance.
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
Run Code Online (Sandbox Code Playgroud)

它没有超越Class.forName...线,我无法弄清楚为什么!这是我做的:

  1. 下载mysql-connector.
  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或者我没有,我都会得到相同的错误.你能帮我搞清楚吗?

Bal*_*usC 53

对于webapp要使用的JAR文件的每个"第三方"库,只需在webapp中复制/删除物理JAR文件即可/WEB-INF/lib.然后它将在webapp的默认类路径中可用.此外,Eclipse足够聪明地注意到这一点.无需为buildpath烦恼.但是,请务必删除之前添加的所有不必要的引用,否则可能会发生冲突.

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

也可以看看:

  • 对于Eclipse的新手,您可以通过转到Properties>'Deployment Assembly'>'Add ...'>'Java Build Path Entries'并选择你的jar来将jar添加到项目的Deployment Assembly中.:) (4认同)
  • @Hiral:项目的*Build Path*中的那个部分用于编译时类路径.要使JAR最终在运行时类路径中,也要将它添加到项目的*Deployment Assembly*列表中.请注意,当构建/导出WAR时,这最终会在`/ WEB-INF/lib`中作为JAR结束.那么为什么不把它放在首位呢? (3认同)

归档时间:

查看次数:

115610 次

最近记录:

6 年,8 月 前