Исключение в потоке "main" java.lang.NoClassDefFoundError: org / apache / commons / lang / builder / CompareToBuilder - PullRequest
0 голосов
/ 26 октября 2018
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" java.lang.NoClassDefFoundError: org / apache / commons / lang / builder / CompareToBuilder External Jars added to project

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

UCanAccess использует Jackcess, а Jackcess использует commons-lang (v2.x), а не commons-lang3.Все необходимые зависимости для UCanAccess включены в папку lib дистрибутива UCanAccess (файл .bin.zip).

0 голосов
/ 26 октября 2018

Я вижу, что вы используете UCanAccess, чистый драйвер JDBC. В этом случае вы должны загрузить этот драйвер:

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.

...