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

我写了一个Java Servlet程序但是当我运行它时,它显示了Exception

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

我的代码是

 package skypark; import java.io.*; import javax.servlet.*; import java.text.*; import javax.servlet.http.*; import java.sql.*; import java.sql.Date; public class Registration extends HttpServlet { private static final long serialVersionUID = 1L; public static Connection prepareConnection() throws ClassNotFoundException, SQLException { String dcn = "oracle.jdbc.driver.OracleDriver"; String url = "jdbc:oracle:thin:@JamesPJ-PC:1521:skypark"; String usname = "system"; String pass = "tiger"; Class.forName(dcn); return DriverManager.getConnection(url, usname, pass); } public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html"); PrintWriter out = resp.getWriter(); try { String phone1, dofb, date1, month, year, uname, fname, lname, address, city, state, country; String pin, email, password, gender, lang, qual, relegion, privacy, hobbies, fav; uname = req.getParameter("uname"); fname = req.getParameter("fname"); lname = req.getParameter("lname"); date1 = req.getParameter("date"); month = req.getParameter("month"); year = req.getParameter("year"); address = req.getParameter("address"); city = req.getParameter("city"); state = req.getParameter("state"); country = req.getParameter("country"); pin = req.getParameter("pin"); email = req.getParameter("email"); password = req.getParameter("password"); gender = req.getParameter("gender"); phone1 = req.getParameter("phone"); lang = ""; qual = ""; relegion = ""; privacy = ""; hobbies = ""; fav = ""; dofb = date1 + "-" + month + "-" + year; int phone = Integer.parseInt(phone1); DateFormat formatter; java.util.Date dob; formatter = new SimpleDateFormat("dd-MM-yy"); dob = formatter.parse(dofb); Connection con = prepareConnection(); String Query = "Insert into regdetails values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; PreparedStatement ps = con.prepareStatement(Query); ps.setString(1, uname); ps.setString(2, fname); ps.setString(3, lname); ps.setDate(4, (Date) dob); ps.setString(5, address); ps.setString(6, city); ps.setString(7, state); ps.setString(8, country); ps.setString(9, pin); ps.setString(10, lang); ps.setString(11, qual); ps.setString(12, relegion); ps.setString(13, privacy); ps.setString(14, hobbies); ps.setString(15, fav); ps.setString(16, gender); int c = ps.executeUpdate(); String query = "insert into passmanager values(?,?,?,?)"; PreparedStatement ps1 = con.prepareStatement(query); ps1.setString(1, uname); ps1.setString(2, password); ps1.setString(3, email); ps1.setInt(4, phone); int i = ps1.executeUpdate(); if (c == 1 || c == Statement.SUCCESS_NO_INFO && i == 1 || i == Statement.SUCCESS_NO_INFO) { out.println("Login"); out.println("

Skypark.com

"); out.println(""); out.println(""); out.println("<form action=login method=post"); out.println(""); out.println(""); out.println("
UserName/E-Mail
Password
"); out.println(""); out.println(""); } else { out.println("Error!"); out.println("Given details are incorrect"); out.println(" Please try again"); RequestDispatcher rd = req.getRequestDispatcher("registration.html"); rd.include(req, resp); return; } } catch (ClassNotFoundException cnfe) { out.println("Error!"); out.println("Class not found " + cnfe + ""); out.println(""); } catch (SQLException sqle) { out.println("Error!"); out.println("Unable to process try after some time Sql error"); out.println(""); } catch (ParseException e) { out.println("Error!"); out.println("Unable to process Parseint exc " + e + ""); out.println(""); } out.flush(); out.close(); } }

我的class级路径是:

 C: \Windows\ system32 > echo % classpath % E: \app\ JamesPJ\ product\ 11.2.0\ dbhome_1\ oui\ jlib\ classes12.jar; E: \app\ JamesPJ\ product 11.2.0\ dbhome_1\ jlib\ orai18n.jar; E: \app\ JamesPJ\ product\ 11.2.0\ dbhome_1\ jdbc\ lib\ ojdc6_g.jar; E: \app\ JamesPJ\ product\ 11.2.0\ dbhome_1\ BIN; C: \Program Files\ Java\ jdk1.7.0_09\ bin; C: \Users\ JamesPJ\ Documents; E: \app\ JamesPJ\ product\ 11.2.0\ dbhome_1\ jdbc\ lib; E: \app\ JamesPJ\ product\ 11.2.0\ dbhome_1\ jlib; E: \app\ JamesPJ\ product\ 11.2.0\ dbhome_1\ jdbc\ lib\ ojdbc6.jar; E: \app\ JamesPJ\ product\ 11.2.0\ dbhome_1\ oc4j\ jdbc\ lib\ orai18n.jar; E: \app\ JamesPJ\ product\ 11.2.0\ dbhome_1\ oc4j\ jdbc\ lib\ ocrs12.jar; E: \app\ JamesPJ\ product\ 11.2.0\ dbhome_1\ owb\ wf\ lib\ ojdbc14.jar; C: \Program Files\ Apache Software Foundation\ Tomcat 7.0\ lib\ servlet - api.jar 

当我给予

  java oracle.jdbc.driver.OracleDriver 

命令在命令提示符下显示以下行

 Error: Main method not found in class oracle.jdbc.driver.OracleDriver, please define the main method as: public static void main(String[] args) 

您是否已将class12.jar复制到Web应用程序的lib文件夹中并在eclipse中设置类路径。

在Package explorer中右键单击项目构建路径 – >添加外部存档…

选择您的ojdbc6.jar存档

按确定

要么

通过此链接阅读并仔细阅读。

现在应该在Package explorer下的“Referenced Librairies”中引用该库。 现在尝试再次运行您的程序。

通过C:\apache-tomcat-7.0.47\lib路径(此路径可能因安装Tomcat服务器的位置而不同),然后通过ojdbc14.jar如果不包含)。

然后在eclipse中重启服务器,然后在服务器上运行您的应用程序

球队! 要从Servlet执行SQL查询,您应该在文件夹中添加JDBC jar库

 WEB-INF/lib 

在此之后你可以调用驱动程序,例如:

 Class.forName("oracle.jdbc.OracleDriver"); 

现在Y可以使用连接到DB-server

==> 73!

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

然后在eclipse中重启服务器。

我得到了同样的错误但是在将ojdbc14.jar复制到lib文件夹之后,没有更多的例外。(从某处复制ojdbc14.jar并将其粘贴到WebContent内的lib文件夹中。)

我有同样的问题,但能够通过执行以下操作来解决它:

右键单击项目 – > Properties,然后在部署程序集中添加JAR(odjbc6或14)文件。

我得到了同样的错误但是在将ojdbc14.jar复制到lib文件夹之后,没有更多的例外。(从某处复制ojdbc14.jar并将其粘贴到WebContent内的lib文件夹中。)