【问题标题】:oracle.jdbc.driver.OracleDriver ClassNotFoundExceptionoracle.jdbc.driver.OracleDriver ClassNotFoundException
【发布时间】:2013-03-13 23:41:09
【问题描述】:

这是我遇到错误的代码。我的classes12.jar 已作为外部 jar 导入。

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginAction extends HttpServlet {
Connection conn;
Statement stmt;
ResultSet rs;
String query = "SELECT * FROM v_urja_login";
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    PrintWriter out = response.getWriter();
    out.println("Hello");
    String u_name = request.getParameter("uname");
    String u_pass = request.getParameter("upass");
    out.println(u_name);
    out.println(u_pass);
    try{
        Class.forName("oracle.jdbc.driver.OracleDriver");
        conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","urja","urja");
        stmt = conn.createStatement();
        rs = stmt.executeQuery(query);
    }catch(SQLException sex){
        sex.printStackTrace();
    } catch (ClassNotFoundException cnf) {
        cnf.printStackTrace();
    }
}
}

堆栈跟踪:

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at LoginAction.doPost(LoginAction.java:27)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:931)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:619)

【问题讨论】:

  • 代码在哪里? :)
  • 司机在哪里?
  • Maroun Maroun 我已经为你添加了代码。

标签: java eclipse jdbc oracle10g classnotfoundexception


【解决方案1】:
   Class.forName("oracle.jdbc.driver.OracleDriver");

这行导致ClassNotFoundException,因为你没有在项目的lib文件夹中放置ojdbc14.jar文件。或者你没有设置所需jar的classpath

【讨论】:

  • 也添加了,但没有得到解决方案。
  • @Mavrick 还在你的 lib 文件夹中添加 classes12.jar
  • @Mavrick 你在参考库中找到它们了吗...因为当你在 lib 中添加 jar 时,它们会自动显示在参考库中检查一次
【解决方案2】:

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver

只需将 ojdbc14.jar 添加到您的类路径。

以下是在eclipse中添加ojdbc14.jar的步骤:

1) 项目内部

2) 库

3) 右键单击​​ JRE 系统库

4) 构建路径

5) 选择配置构建路径

6) 点击添加外部 JAR...

7) C:\oracle\app\oracle\product\10.2.0\server\jdbc\lib

8) 在这里你会得到 ojdbc14.jar

9) 选择这里

10) 打开

11) 好的

保存并运行你将得到输出的程序。

【讨论】:

    【解决方案3】:

    在 Eclipse 中,右键单击您的应用程序

    运行方式 -> 运行配置 ->类型过滤器文本框中选择您的服务器

    然后在 Bootstrap Entries 下的 Classpath 中添加您的 classes12.jar 文件 并点击 Apply
    现在,运行文件......这对我有用!

    【讨论】:

      【解决方案4】:

      方法一:下载ojdbc.jar

      将 ojdbc6.jar 添加到部署程序集。右键单击项目->属性->选择部署程序集->单击“添加”->选择“文件系统中的存档”->浏览到保存ojdbc6.jar的文件夹。->添加jar->单击完成->应用/确定。

      方法二:

      如果您想将 ojdbc.jar 添加到您的 maven 依赖项中,请点击此链接:http://www.mkyong.com/maven/how-to-add-oracle-jdbc-driver-in-your-maven-local-repository/ . . 即使您使用的是 maven 项目,也无需将 ojdbc 添加到 maven 依赖项(方法 2),方法 1(直接添加到部署程序集)也可以。

      【讨论】:

      • 方法一救了我。非常感谢。:)
      【解决方案5】:

      尝试通过服务器lib“C:\apache-tomcat-7.0.47\lib”添加ojdbc6.jar或其他版本,

      然后在eclipse中重启服务器。

      【讨论】:

        【解决方案6】:

        1.右键点击你的java项目。

        2.选择“运行为”。

        3.选择“运行配置...”。

        4.在页面左侧选择您的服务器,然后您会在右侧看到“CLASS PATH”选项卡,只需单击它即可。

        5.点击“USER ENTRIES”并选择“ADD EXTERNAL JARS”。

        6.选择“ojdbc14.jar”文件。

        7.点击应用。

        8.点击运行。

        9.最后重启你的服务器然后它就会被执行。

        【讨论】:

          【解决方案7】:

          在 Eclipse 中,

          当你在你的servlet中使用JDBC时,驱动jar必须放在你项目的WEB-INF/lib目录下。

          【讨论】:

            【解决方案8】:

            您可以添加一个具有上述指定类的 JAR,例如安装的 java 版本支持的 ojdbc jar,同时确保您已将其添加到类路径中。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2012-06-17
              • 2017-02-14
              • 1970-01-01
              • 2020-05-07
              • 2016-06-19
              • 1970-01-01
              相关资源
              最近更新 更多