![](/img/trans.png)
[英]ClassNotFoundException: oracle.jdbc.driver.OracleDriver
[英]oracle.jdbc.driver.OracleDriver ClassNotFoundException
這是我收到錯誤的代碼。 我的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)
Class.forName("oracle.jdbc.driver.OracleDriver");
此行導致ClassNotFoundException
,因為您尚未將ojdbc14.jar
文件放置在項目的 lib 文件夾中。 或者您還沒有設置所需 jar 的classpath
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
只需將ojdbc14.jar添加到您的類路徑中。
下面是在eclipse中添加ojdbc14.jar的步驟:
1) 在你的項目中
2) 圖書館
3) 右鍵單擊 JRE 系統庫
4) 構建路徑
5) 選擇配置構建路徑
6) 單擊添加外部 JAR...
7) C:\\oraclex\\app\\oracle\\product\\10.2.0\\server\\jdbc\\lib
8) 在這里你會得到 ojdbc14.jar
9) 在這里選擇
10) 打開
11) 好的
保存並運行程序,您將獲得輸出。
在 Eclipse 中,右鍵單擊您的應用程序
運行方式 -> 運行配置 ->從類型過濾器文本框中選擇您的服務器
然后在Bootstrap Entries下的 Classpath 添加您的classes12.jar 文件並單擊Apply 。
現在,運行文件......這對我有用!!
方法一:下載ojdbc.jar
將 ojdbc6.jar 添加到部署程序集。 右鍵項目->屬性->選擇部署程序集->點擊'添加'->選擇'Archives from File System'->瀏覽到保存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(直接添加到部署程序集)工作得很好。
嘗試通過服務器庫“C:\\apache-tomcat-7.0.47\\lib”添加ojdbc6.jar或其他版本,
然后在eclipse中重啟服務器。
1.右鍵單擊您的java項目。
2.選擇“運行方式”。
3.選擇“運行配置...”。
4.這里在頁面左側選擇您的服務器,然后您會在右側看到“CLASS PATH”選項卡,只需單擊它。
5.點擊“USER ENTRIES”並選擇“ADD EXTERNAL JARS”。
6.選擇“ojdbc14.jar”文件。
7. 單擊應用。
8. 單擊運行。
9.最后重啟你的服務器,然后它就會被執行。
在日食中,
在 servlet 中使用 JDBC 時,驅動程序 jar 必須放在項目的 WEB-INF/lib 目錄中。
沒有遇到問題,在 pom 文件中添加 Ojdbc8 依賴項后。
您可以添加一個具有上述指定類的 JAR 存在已安裝的 Java 版本支持的 egojdbc jar,並確保您已將其添加到類路徑中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.