Java UCanAccess中的ClassNotFoundException和NoClassDefFound错误

Java UCanAccess中的ClassNotFoundException和NoClassDefFound错误,java,ms-access,jdbc,ucanaccess,Java,Ms Access,Jdbc,Ucanaccess,Java8中不再包含JDBC-ODBC桥,所以我尝试了,但我遇到了问题。这是我的密码: package jdbc; import java.sql.*; public class jdbc { Connection con; Statement st; jdbc() { try { con=DriverManager.getConnection("jdbc:ucanaccess://P

Java8中不再包含JDBC-ODBC桥,所以我尝试了,但我遇到了问题。这是我的密码:

  package jdbc;
  import java.sql.*;

 public class jdbc  
 {
    Connection con;
    Statement st;

    jdbc()
    {  
        try
        {
            con=DriverManager.getConnection("jdbc:ucanaccess://P:/eclipseWorkspace/databases/signup.accdb");
        st=con.createStatement();

        st.executeUpdate("INSERT INTO signup (firstName,lastName,email,password)     VALUES ('rocky','balboa','rocky@gmail.com','pop')");
        System.out.println("SUCCESS");

    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
    }


}

class main
{
     public static void main(String args[])
    {
        new jdbc();
    }
}
我包括了一些外部罐子,如图所示:

当我运行它时,它会给我一个包含ClassNotFoundException和NoClassDefFound错误的堆栈跟踪,如下所示:


我的代码有什么问题?

UCanAccess有几个依赖项,其中一个是commons-lang-2.x(2.4或更高版本)。您在项目中使用的是commons-lang3-3.3.2,因此UCanAccess(实际上是Jackcess)无法找到commons-lang-2.x类


解压UCanAccess发行版时,它会创建一个
lib/
文件夹,其中包含所需依赖项的兼容版本。您需要将项目中的
commons-lang3-3.3.2.jar
引用替换为UCanAccess
lib/
文件夹中的
commons-lang-2.6.jar

请提及您收到的大量错误!不再支持?文档中说了一些其他的错误。错误显示在图像链接(最后一个)中。当您解压缩UCanAccess发行版时,它创建了一个
lib/
文件夹,其中包含所需依赖项的兼容版本。其中之一是
commons-lang-2.6.jar
,但我从您的屏幕截图中看到您正在使用
commons-lang3-3.3.2.jar
。试着用UCanAccess
lib/
文件夹中的2.6版本替换那个版本,看看是否有帮助。@Gord我照你说的做了。现在我有了新的错误。net.ucanaccess.jdbc.UcanaccessSQLException:用户缺少权限或找不到对象:注册旧的已修复,谢谢。