2016-07-31 90 views
0

有一个在运行时使用此代码是如何在运行时解决“java.lang.ClassNotFoundException:oracle.jdbc.driver.OracleDriver”?

抛出java.lang.ClassNotFoundException一个问题:甲骨文为:jdbc:驱动程序: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); 


    } 
} 
+2

唯一的例外来自当你试着去'的Class.forName(“......一个OracleDriver”)'因为你没有在你的类路径中的Oracle JDBC类。有很多很多其他的问题都是这样的,快速的谷歌搜索会给你一个答案。 –

回答

3

为什么你遇到这样的例外是,您使用了错误的包指OracleDriver

因此原因,你应该改变不正确的类加载通话

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

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

因为这个类文件实现了java.sql.Driver在运行时实际检查的接口。

作为参考,也可参见在Oracle提供的official JavaDoc的描述:

的一个实现java.sql.Driver中接口的Oracle JDBC驱动器类。

1

溶液:

1)首先下载ojdbc6.jar和从谷歌ojdbc6_g.jar。

2)如果要从Java连接到Oracle 11g并在版本Java 6上运行,请在应用程序的类路径中包含ojdbc6.jar或ojdbc6_g.jar。 3)完成下载后,将文件粘贴到C:\ Program Files \ Java \ jdk1.6.0_23 \ jre \ lib \ ext文件夹中。

欢呼 纳思Padala

相关问题