Wie zu lösen “java.lang.ClassNotFoundException: oracle.jdbc.- Treiber.OracleDriver" zur Laufzeit?
Gibt es ein problem zur Laufzeit mit diesem code ist :
java.lang.classNotFoundException: oracle:jdbc:driver:OracleDriver
aber ein anderes Programm des gleichen JDBC-Treiber sind ordnungsgemäß ausgeführt werden, aber diese JDBC-Treiber gefunden wird eine exception in java-applet. Also bitte helfen Sie mir für dieses problem.
Ich bin neu in Java.
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.sql.*;
import java.io.*;
/*<applet code="EmpDetails" width=300 height=500></applet>*/
public class EmpDetails extends Applet implements ActionListener{
TextField firstName, lastName, userId, pass, email, phone;
Button submit,cancel;
String msg = "";
public void init(){
setLayout(new GridLayout(10,2,0,30));
Label fname = new Label("First Name : ");
Label lname = new Label("\nLast Name : ");
Label uid = new Label("User Id : ");
Label pas = new Label("Password : ");
Label emailid = new Label("Email Id : ");
Label ph = new Label("Phone : ");
firstName = new TextField(10);
lastName = new TextField(10);
userId = new TextField(16);
pass = new TextField(16);
email = new TextField(30);
phone = new TextField(12);
pass.setEchoChar('*');
submit = new Button("Submit");
cancel = new Button("Cancel");
add(fname);
add(firstName);
add(lname);
add(lastName);
add(uid);
add(userId);
add(pas);
add(pass);
add(emailid);
add(email);
add(ph);
add(phone);
add(submit);
add(cancel);
firstName.addActionListener(this);
lastName.addActionListener(this);
userId.addActionListener(this);
pass.addActionListener(this);
email.addActionListener(this);
phone.addActionListener(this);
submit.addActionListener(this);
cancel.addActionListener(this);
}
public void actionPerformed(ActionEvent ae)
{
String str = ae.getActionCommand();
if(str.equals("Submit"))
{
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:XE";
String id = "system";
String passw = "root";
Connection con = DriverManager.getConnection(url , id , passw);
Statement st = con.createStatement();
String u,fn,ln,ps,em,pn;
u = userId.getText();
fn = firstName.getText();
ln = lastName.getText();
ps = pass.getText();
em = email.getText();
pn = phone.getText();
String urld = "INSERT INTO EMPDETAILS(id,firstname,lastname,email,password,phone)" + "values" + "('" + u + "','" + fn + "','" + ln + "','" + em + "','" + ps + "','" + pn + "')";
st.executeUpdate(urld);
con.close();
st.close();
msg = "Recode added successfull ";
}
catch(Exception e){ msg = e.toString();}
}
else{
msg = "No any data added";
}
repaint();
}
public void paint(Graphics g){
g.drawString(msg,6,300);
}
}
- Die Ausnahme kommt, wenn Sie versuchen
Class.forName("....OracleDriver")
weil Sie nicht über die Oracle-JDBC-Klassen über den classpath. Es gibt viele, viele andere Fragen, genau wie diese, eine schnelle google-Suche werden Sie eine Antwort erhalten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Grund, warum Sie begegnen dieser Ausnahme ist, dass Sie die falsche Paket zu finden, um die
OracleDriver
KlasseDaher sollten Sie die falsche Klasse Last call
in
als diese class-Datei implementiert die
java.sql.Driver
Schnittstelle, die eigentlich überprüft zur Laufzeit.Als Referenz, siehe auch die Beschreibung in der offizielle JavaDoc von Oracle:
Lösung
1) Zunächst laden Sie
ojdbc6.jar
undojdbc6_g.jar
von google.2) Wenn Sie eine Verbindung zu Oracle 11g von Java und läuft auf der version Java 6 dann
ojdbc6.jar
oderojdbc6_g.jar
im Klassenpfad der Anwendung übereinstimmt.3) Sobald Sie den download abzuschließen, fügen Sie die Dateien in
C:\Program Files\Java\jdk1.6.0_23\jre\lib\ext folder
.Dies ist nur eine Referenz-Lösung für diejenigen, die Java 1.8 und oracle, Version 12+. In meinem Fall hatte ich Java 1.8 daher herunterladen oracle8.jar und platzieren, dass in den classpath wie oben erwähnt, dabei geholfen mein problem zu lösen.