Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.NoClassDefFoundError:com/healthmarketscience/jackAccess/util/ErrorHandler在ms access中与java8的连接_Java - Fatal编程技术网

java.lang.NoClassDefFoundError:com/healthmarketscience/jackAccess/util/ErrorHandler在ms access中与java8的连接

java.lang.NoClassDefFoundError:com/healthmarketscience/jackAccess/util/ErrorHandler在ms access中与java8的连接,java,Java,我正在尝试用Java8版本连接Ms Access数据库。但与此版本一样,jdbcodbcbridge驱动程序已被删除,因此需要包括以下jar文件: **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 (c

我正在尝试用Java8版本连接Ms Access数据库。但与此版本一样,jdbcodbcbridge驱动程序已被删除,因此需要包括以下jar文件:

**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)**
我通过构建路径选项在eclipse中购买了所有这些jar文件

但当我执行以下代码时,仍然会出现错误

线程“main”java.lang.NoClassDefFoundError中出现异常: com/healthmarketscience/jackcess/util/ErrorHandler位于java.lang.Class.forName0(本机方法)的 位于的java.lang.Class.forName(未知源) demo.JDBCDemo.main(JDBCDemo.java:11)由以下原因引起: java.lang.ClassNotFoundException: com.healthmarketscience.jackcess.util.ErrorHandler位于 java.net.URLClassLoader.findClass(未知源代码)位于 位于的java.lang.ClassLoader.loadClass(未知源) java.lang.ClassLoader.loadClass(未知源)。。。3个以上

我的代码是:

    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());
    }
    }
    }
}

在哪些列中插入此值

类路径中有一个过时的jackcess旧版本。请将您正在使用的特定ucanaccess发行版的文件夹库中的jar添加到类路径ucanaccess.jar。

import com.healthmarketscience.jackcess.util.ErrorHandler;我添加这一行只是为了检查类的存在。也许JAR不是类路径的一部分,我正在eclipse中编程。因此,在本例中,我们通过bulid路径将jar文件带到项目中,我也这样做了,您在eclipse中运行项目*的位置?这可能有助于使其正常工作。我在StudentData.accdb中对name NameData的ms-access表进行了访问,其中包含ID和NameShouldn列,而不是
插入到NameData(ID,name)值(4,'ram')
String str="insert into NameData values(4,'ram')";