如何在Eclipse web项目中安装JDBC驱动程序而不面临java.lang.ClassNotFoundexception

如何在Eclipse web项目中安装JDBC驱动程序而不面临java.lang.ClassNotFoundexception,eclipse,jakarta-ee,jdbc,classnotfoundexception,Eclipse,Jakarta Ee,Jdbc,Classnotfoundexception,但在我的情况下,我的构建路径中没有任何重复的jar,因此解决方案对我不起作用。我已经在谷歌搜索了几个小时了,但我在那里找到的任何解决方案都不能解决我的问题。我正在为家庭作业创建一个带有数据库连接的网站。我使用的是MySQL数据库,在Eclipse中开发,在Windows上运行 我不断得到java.lang.ClassNotFoundException:com.mysql.jdbc.Driver,代码如下: import java.sql.*; //... public void someMeth

但在我的情况下,我的构建路径中没有任何重复的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>");
    }
}
//...
它没有通过
类。forName…
行,我不知道为什么!以下是我所做的:

  • 下载mysql连接器
  • 把它放在我的MySQL文件夹
    C:\ProgramFiles\MySQL\MySQL-connector-java-5.1.12\MySQL-connector-java-5.1.12-bin.jar
  • 在Eclipse中打开项目属性
  • 将外部Jar添加到我的构建路径中,我选择了
    mysql-connector-java-5.1.12-bin.Jar

  • 每次我尝试使用servlet时,我都会得到相同的错误,不管我是否有jar。您能帮我解决这个问题吗?

    因为您是在
    servlet
    中运行它,所以您需要让servlet容器能够访问jar。您可以将连接器作为应用程序
    war
    的一部分,也可以将其作为servlet容器的扩展库和数据源管理内容的一部分(如果有的话)。第二部分完全取决于您拥有的容器。

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

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

    另见:

    关于让驱动程序JAR可用于servlet容器,其他人是对的。我的评论旨在建议您从命令行验证驱动程序本身是否完好无损

    与其使用空的
    main()
    ,不如尝试以下类似的操作,这些操作是根据随附文档改编的:

    public class LoadDriver {
        public static void main(String[] args) throws Exception {
            Class.forName("com.mysql.jdbc.Driver");
        }
    }
    
    在我的平台上,我会这样做:

    $ ls mysql-connector-java-5.1.12-bin.jar mysql-connector-java-5.1.12-bin.jar $ javac LoadDriver.java $ java -cp mysql-connector-java-5.1.12-bin.jar:. LoadDriver $ls mysql-connector-java-5.1.12-bin.jar mysql-connector-java-5.1.12-bin.jar $javac LoadDriver.java $java-cp mysql-connector-java-5.1.12-bin.jar:。装载机
    在您的平台上,您需要使用
    作为路径分隔符,如前所述和。

    将mysql-connector-java-5.1.6-bin.jar放在\Apache-Tomcat 6.0.18\lib文件夹中。您的问题将得到解决。

    只需执行以下步骤:

    1) 安装eclipse
    2) 将Apache导入eclipse
    3) 安装mysql
    4) 下载mysqlconnector/J
    5) 解压压缩后的文件并在其中导航,直到将bin文件放入其中。然后将包含bin的文件夹中的所有文件放置到C:\Program files\mysql\mysql server5.1/ 然后在eclipse中定义驱动程序时,给出与地址相同的路径


    伙计们,这些都很简单。

    如果问题仍然存在

    把- mysql-connector-java-5.0.8-bin jar位于Tomcat->lib->文件夹中的某个位置(无论您将Tomcat安装在何处)。并更改您的环境变量(通过单击Mycomputer的属性-高级系统设置-环境变量完成,并将新的变量名和变量值设置为lib文件所在的位置。不要忘记在路径的末尾输入a;)

    如果问题仍然存在 尝试下载commons-collections-2.0.jar()并将jar粘贴到您的mysql jar所在的位置(即Tomcat lib中)


    清理您的项目停止您的服务器-最后尝试运行。

    我多次遇到此问题,我遇到ClassNotFoundException。 如果jar不在物理位置

    因此,请确保.jar文件(mysql连接器)位于WEB-INF库文件夹的物理位置。和 确保使用cmd中的shutdown命令重新启动Tomcat。
    它应该可以工作。

    对我来说唯一有效的解决方案是将.jar文件放在WEB-INF/lib下。希望这会有所帮助

    对于此错误:

    java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    
    您需要:

    Import java.sql.*;
    Import com.mysql.jdbc.Driver;
    

    即使在应用程序运行之前未使用它。

    假设您的项目基于maven,请将其添加到POM中:

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.26</version>
        </dependency>
    
    
    mysql
    mysql连接器java
    5.1.26
    
    保存>构建>并再次测试连接。它起作用了!您的实际mysql java connector版本可能会有所不同。

    您不应该做的事情(尤其是在处理共享项目时) 好的,在有了同样的问题之后,在阅读了这里和其他地方的一些答案之后。似乎将
    externallib
    放入
    WEB-INF/lib
    并不是一个好主意,因为它
    会用特定于服务器的库污染webapp/JRE-libs

    我不推荐的另一种解决方案是:将其复制到tomcat/lib文件夹中。尽管这可能有效,但管理共享(例如git)项目的依赖关系将很困难

    好办法1 创建
    供应商
    文件夹。把所有的外部库都放在那里。然后,将此文件夹作为依赖项映射到项目。在eclipse中,您需要

  • 将文件夹添加到生成路径
  • 项目属性
    ->
    Java构建路径
  • ->添加外部库或任何其他解决方案以添加文件/文件夹
  • 将生成路径添加到部署程序集()
  • 项目属性
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.26</version>
        </dependency>
    
    java.sql.SQLException: Cannot create JDBC driver of class 'oracle.jdbc.driver.OracleDriver' for connect URL 'server:port/service'