打包的 Jar 文件中不存在数据库文件

问题描述

我有一个使用 MS 访问作为数据库的 JavaFX 项目,在 IntelliJ 中创建可执行 JAR 后,在 CMD 中运行 jar 时,出现以下异常

net.ucanaccess.jdbc.ucanaccesssqlException: UCAExc:::4.x.x given file does not exist: resource\Account_Record.accdb
    at net.ucanaccess.jdbc.ucanaccessDriver.connect(ucanaccessDriver.java:231)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:251)

这表明我的以下命令无法访问数据库文件

Class.forName("net.ucanaccess.jdbc.ucanaccessDriver");
        conn = DriverManager.getConnection("jdbc:ucanaccess://resource//Account_Record.accdb);

我检查了 Jar 文件,是的,里面有“Account_Record.accdb”,在 IntelliJ IDE 中运行 JAR 文件时,我没有收到任何错误,但无法使其独立!

解决方法

UcanAccess 只在文件系统中查找数据库,您必须通过自己的代码提取它