LibreOffice 25.2通过UCanAccess及jdbcDriverOOo连接Access数据库失败
解决Debian 12下LibreOffice 25.2连接MDB文件的问题
已排查问题回顾
- 最初将含
ucanload.jar的loader文件夹加入JRE类路径,触发ClassNotFoundException;直接添加ucanload.jar后驱动加载成功,但仍无法建立连接 - 使用jdbcDriverOOo扩展,手动添加instrumentation JAR后连接失败,扩展自动生成的URL为
xdbc:ucanaccess:///home/gouessej/Downloads/KAR.MDB
关键修复步骤
1. 补全UCanAccess依赖包
UCanAccess仅靠ucanload.jar无法正常工作,必须将所有依赖JAR添加到类路径:
ucanaccess-x.x.x.jar(主程序包,版本需匹配)hsqldb-x.x.x.jarjackcess-x.x.x.jarcommons-lang3-x.x.x.jarcommons-logging-x.x.x.jar
把这些JAR放在同一目录,将该目录或每个JAR单独添加到LibreOffice的JRE类路径中,不要只添加ucanload.jar。
2. 修正JDBC URL格式
- 直接使用UCanAccess时,必须用标准格式,可加上结构识别参数:
jdbc:ucanaccess:///home/gouessej/Downloads/KAR.MDB;showschema=true - 使用jdbcDriverOOo时,扩展生成的
xdbc:前缀是错误的,需手动将JDBC URL改为标准的jdbc:ucanaccess:///...格式,不要依赖扩展自动生成。
3. 检查权限与JDK兼容性
- 确保MDB文件对当前用户有读写权限:
chmod 644 /home/gouessej/Downloads/KAR.MDB - OpenJDK 21属于高版本,部分旧版UCanAccess兼容性差,建议降级到OpenJDK 17或11(LTS版本),LibreOffice对这类版本的适配更稳定。
4. 验证LibreOffice JRE配置
- 打开LibreOffice → 工具 → 选项 → LibreOffice → 高级,确认选中的是完整OpenJDK(而非仅JRE)
- 点击「类路径」,确认所有UCanAccess依赖JAR已添加;点击「测试类」,输入
net.ucanaccess.jdbc.UcanaccessDriver(注意是UcanaccessDriver而非UcanloadDriver),确保测试通过。
5. 替代方案:用mdbtools导出
如果UCanAccess始终无法连接,可尝试Debian自带的mdbtools工具:
# 安装工具 sudo apt install mdbtools # 导出指定表为CSV mdb-export /home/gouessej/Downloads/KAR.MDB 目标表名 > 导出文件.csv
将导出的CSV导入LibreOffice Calc或Base即可编辑。
内容的提问来源于stack exchange,提问作者gouessej
相关产品推荐
相关产品推荐

