繁体   English   中英

线程“ main”中的异常java.lang.NoClassDefFoundError:org / apache / commons / lang / builder / CompareToBuilder

[英]Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/commons/lang/builder/CompareToBuilder

package myJavaPrograms;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class AccessDBFiles {
    public static void main(String[] args) throws SQLException  {
        Connection conn=DriverManager.getConnection(
                "jdbc:ucanaccess://C:\\TESTFILE\\Database11.accdb");
        Statement s = conn.createStatement();
        ResultSet rs = s.executeQuery("SELECT * FROM myTable");
        while (rs.next()) {
            System.out.println(rs.getString(1));
        }
    }

我在线程main中得到异常,作为线程“ main”中的异常java.lang.NoClassDefFoundError:org / apache / commons / lang / builder / CompareToBuilder 将外部Jar添加到项目中

我看到您使用的是纯JDBC驱动程序UCanAccess。 这种情况下,您必须加载此驱动程序:

Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");

另外,您可以像这样加载JDBC / ODBC驱动程序类:

 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

在这种情况下,URL格式如下:

jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=myDB.mdb;

另外,不要忘记关闭资源:ResultSet,Statement和Connection。

UCanAccess使用Jackcess,而Jackcess使用commons-lang (v2.x),而不是commons-lang3 UCanAccess所需的所有依赖项都包含在UCanAccess发行版的lib文件夹(.bin.zip文件)中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM