2016-03-02 85 views
1

我想連接女士Access數據庫與Java 8版本。但正如在這個版本jdbcodbcbridge已刪除驅動程序,所以以下jar文件必須包括:java.lang.NoClassDefFoundError:com/healthmarketscience/jackcess/util/ErrorHandler在ms訪問連接與java8

**ucanaccess-x.x.x.jar 
HSQLDB (hsqldb.jar, version 2.2.5 or newer) 
,Jackcess (jackcess-2.x.x.jar) 
,commons-lang (commons-lang-2.6.jar, or newer 2.x version) 
,commons-logging (commons-logging-1.1.1.jar, or newer 1.x version)** 

我在日食通過構建路徑選擇買所有這些jar文件。

但仍當我執行下面的代碼是爲未來與錯誤

Exception in thread "main" java.lang.NoClassDefFoundError: com/healthmarketscience/jackcess/util/ErrorHandler at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at demo.JDBCDemo.main(JDBCDemo.java:11) Caused by: java.lang.ClassNotFoundException: com.healthmarketscience.jackcess.util.ErrorHandler at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 3 more

而且我的代碼是:

import java.sql.*; 
import java.util.*; 

import com.healthmarketscience.jackcess.util.ErrorHandler; 
public class JDBCDemo { 
    public static void main(String args[]) throws Exception 
    { 
     Class.forName("net.ucanaccess.jdbc.UcanaccessDriver"); 
    Connection con=DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\isha\\Desktop\\StudentData.accdb"); 
    Statement stmt=con.createStatement(); 
    String str="insert into NameData values(4,'ram')"; 
    stmt.executeUpdate(str); 
    String s="select * from NameData"; 
    ResultSet res=stmt.executeQuery(s); 
    while(res.next()){ 
    System.out.println(res.getString(1)+":"+res.getString(2)); 
    Enumeration e=DriverManager.getDrivers(); 
    while(e.hasMoreElements()){ 
     Driver d=(Driver)e.nextElement(); 
     System.out.println(d.getClass().getName()); 
    } 
    } 
    } 
} 
+0

import com.healthmarketscience.jackcess.util.ErrorHandler;這條線是我加入的,只是檢查班級的存在。 – Isha

+0

也許罐子不是類路徑的一部分 – Jens

+0

我正在做eclipse中的編程。所以在這種情況下,我們通過項目中的bulid路徑引入jar文件,並且我做了 – Isha

回答

1

您的classpath中有一箇舊的過時版本的jackcess。請將classpath ucanaccess.jar添加到您正在使用的特定ucanaccess發行版的文件夾lib中的jar。

0
String str="insert into NameData values(4,'ram')"; 

在列插入這個值?

+0

我有ms訪問名稱NameData StudentData.accdb中的表與列ID和名稱 – Isha

+0

不應該'INSERT INTO NameData(ID,Name)VALUES(4,'ram')'? – Djehenghizz

+0

不,這不是我猜的正確方法 – Isha