如何在运行时解决“java.lang.ClassNotFoundException:oracle.jdbc.driver.OracleDriver”?
此代码在运行时存在一个问题:
java.lang.classNotFoundException: oracle:jdbc:driver:OracleDriver
但是同一个JDBC驱动程序的另一个程序运行正常,但是这个JDBC驱动程序在java applet中发现了一个异常。所以请帮我解决这个问题
我是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);
}
}
# 1 楼答案
遇到此异常的原因是,您使用了错误的包来引用
OracleDriver
类因此,您应该更改不正确的类装入调用
进入
因为这个类文件实现了
java.sql.Driver
接口,这个接口实际上是在运行时检查的有关参考信息,请参见Oracle提供的official JavaDoc中的描述:
# 2 楼答案
对于那些拥有Java 1.8和oracle 12+版本的用户来说,这只是一个参考解决方案。在我的例子中,我使用了Java1.8,因此下载了oracle8。jar并将其放置在上面提到的类路径中,帮助解决了我的问题