Java.lang.ClassNotFoundException: oracle.jdbc.pilote.OracleDriver [dupliquer]
Cette question a déjà une réponse ici:
J'ai écrit un programme de Servlet Java mais quand je l'exécute, il affichait l'exception
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
Mon code est
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("<html><head><title>Login</title></head><body>");
out.println("<center><h2>Skypark.com</h2>");
out.println("<table border=0><tr>");
out.println("<td>UserName/E-Mail</td>");
out.println("<form action=login method=post");
out.println("<td><input type=text name=uname></td>");
out.println("</tr><tr><td>Password</td>");
out.println("<td><input type=password name=pass></td></tr></table>");
out.println("<input type=submit value=Login>");
out.println("</form></body></html>");
} else {
out.println("<html><head><title>Error!</title></head><body>");
out.println("<center><b>Given details are incorrect</b>");
out.println(" Please try again</center></body></html>");
RequestDispatcher rd = req.getRequestDispatcher("registration.html");
rd.include(req, resp);
return;
}
} catch (ClassNotFoundException cnfe) {
out.println("<html><head><title>Error!</title><body>");
out.println("<b><i>Class not found " + cnfe + "</i></b>");
out.println("</body></html>");
} catch (SQLException sqle) {
out.println("<html><head><title>Error!</title><body>");
out.println("<b><i>Unable to process try after some time Sql error</i></b>");
out.println("</body></html>");
} catch (ParseException e) {
out.println("<html><head><title>Error!</title><body>");
out.println("<b><i>Unable to process Parseint exc " + e + "</i></b>");
out.println("</body></html>");
}
out.flush();
out.close();
}
}
Mon chemin de classe est :
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
Quand je donne le
java oracle.jdbc.driver.OracleDriver
Commande dans l'invite de commande, il affichait les lignes suivantes
Error: Main method not found in class oracle.jdbc.driver.OracleDriver, please define the main method as:
public static void main(String[] args)
7 answers
Avez-vous copié classes12.jar dans le dossier lib de votre application Web et définissez le chemin de classe dans eclipse.
Faites un clic droit sur le projet dans l'explorateur de paquets Chemin de construction - > Ajouter des archives externes...
Sélectionnez votre ojdbc6.jar archive
Appuyez sur OK
Ou
Parcourez celien et lisez et faites attentivement.
La bibliothèque doit maintenant être référencée dans les "Bibliothèques référencées" sous l'explorateur de paquets. Essayez maintenant d'exécuter à nouveau votre programme.
Passez par C:\apache-tomcat-7.0.47\lib
chemin (ce chemin peut être différent en fonction de l'endroit où vous avez installé le serveur Tomcat) puis passé ojdbc14.jar
s'il ne contient pas.
Puis redémarrez le serveur dans eclipse puis exécutez votre application sur le serveur
Équipe! Pour exécuter SQL-query à partir de votre Servlet, vous devez ajouter la bibliothèque jar JDBC dans le dossier
WEB-INF/lib
Après cela, vous pouvez appeler driver, exemple:
Class.forName("oracle.jdbc.OracleDriver");
Maintenant Y peut utiliser la connexion à DB-server
==> 73!
Essayez d'ajouter ojdbc6.jar via la bibliothèque du serveur "C:\apache-tomcat-7.0.47\lib",
, Puis redémarrez le serveur dans eclipse.
J'obtenais la même erreur mais après avoir copié l'ojdbc14.jar dans le dossier lib, plus d'exception.(copie ojdbc14.jar de quelque part et collez-le dans le dossier lib dans WebContent.)
J'ai eu le même problème mais j'ai pu le résoudre en procédant comme suit:
Faites un clic droit sur le projet- > Propriétés, puis ajoutez le fichier JAR (odjbc6 ou 14) dans l'assembly de déploiement.
Je devenais pareil un peu d'erreur, mais après la copie de la jojdbc14.bocal en lib dossier, pas plus exception.(copie jojdbc14.pot de quelque part et coller il dans le dossier lib à l'intérieur de WebContent.)