有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java UCanaAccess异常“不支持的更新版本:5”

我正在尝试使用ucanaccess(4.0.2)jar访问MS access 2016(.accdb)文件,代码如下:

public class Test {
    static String path ="*****/src/main/resources/TestDatabase.accdb";  //absolute path to my access file
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
       Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
       Connection conn = DriverManager.getConnection("jdbc:ucanaccess://"+path);
}

我得到以下例外情况:

Exception in thread "main" net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::4.0.2 Unsupported newer version: 5
at net.ucanaccess.jdbc.UcanaccessDriver.connect(UcanaccessDriver.java:264)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:270)
at db.Test.main(Test.java:29)
Caused by: java.io.IOException: Unsupported newer version: 5
at com.healthmarketscience.jackcess.impl.JetFormat.getFormat(JetFormat.java:293)
at com.healthmarketscience.jackcess.impl.DatabaseImpl.<init>(DatabaseImpl.java:517)
at com.healthmarketscience.jackcess.impl.DatabaseImpl.open(DatabaseImpl.java:400)
at com.healthmarketscience.jackcess.DatabaseBuilder.open(DatabaseBuilder.java:252)
at net.ucanaccess.jdbc.DefaultJackcessOpener.open(DefaultJackcessOpener.java:35)
at net.ucanaccess.jdbc.DBReference.<init>(DBReference.java:161)
at net.ucanaccess.jdbc.DBReferenceSingleton.loadReference(DBReferenceSingleton.java:51)
at net.ucanaccess.jdbc.UcanaccessDriver.connect(UcanaccessDriver.java:98)
... 3 more

使用的Maven依赖项:

enter image description here

任何帮助都将不胜感激

谢谢


共 (3) 个答案

  1. # 1 楼答案

    Jackcess将在2.1.10版本中支持Access 2016数据库(更改目前在trunk中,但尚未发布)

  2. # 2 楼答案

    1. 使用来自jackcess的最新jar文件覆盖库
    2. 转到您的MS Access 2016
    3. 在“信息”下点击“Compact and Repair”。保存桌子
    4. 再次尝试运行netbeans代码

    这在我的情况下奏效了:)

  3. # 3 楼答案

    我也面临着同样的错误。我已经升级到jackcess-3.0.1,现在已经解决了