1

由于我已添加到参考库 ucanaccess-2.0.3.jar (eclipse Luna),因此在执行我的程序时收到此错误:

Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class net.ucanaccess.jdbc.UcanaccessDriver

引用了包含 JT400 连接的一行代码,如果我的项目中不包含 ucanaccess jar,则该行有效,如下所示:

Class.forName("com.ibm.as400.access.AS400JDBCDriver");
Connection c = DriverManager.getConnection("jdbc:as400://"+systemi,user,pass);
return c;

所以我很困惑......我也有一个进行 ucanaccess 连接的类,但在我按下按钮之前它不会被调用:

Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
Connection c=DriverManager.getConnection("jdbc:ucanaccess://M:/FServer.mdb"); 
return c;

这是图书馆的冲突吗?有人尝试过吗?

4

1 回答 1

2

您链接的问题可能与 mdb 损坏有关,并且与您的 NoClassDefFoundError 问题完全无关。也不可能与 AS400JDBCDriver 存在特定的冲突问题,因此最好关注 java.lang.NoClassDefFoundError。这意味着您的运行时环境类路径中缺少。您应该首先检查您是否使用 Java 6 或更早版本,您的类路径中是否存在所有 UCanAccess 依赖项(请参阅 UCanAccess 发行版的 lib 文件夹中的 jars:jackcess、hsqldb、commons-logging 和 commons-lang)以及它们是否与类路径中已经存在的 jar 不冲突(例如,存在旧的和不兼容的 jackcess 版本)。干杯马可

于 2014-03-27T17:54:07.507 回答