簡體   English   中英

讀取嵌入在JAR文件中的Access數據庫

[英]Read an Access database embedded in a JAR file

我有一個使用UCanAccess讀取Access數據庫的Java程序。 將程序導出到JAR文件時,無法讀取JAR內部的數據庫文件。

我嘗試使用getClass().getResource("/Database.accdb").getPath()但它不起作用。

我該如何解決?

您不能直接從可運行JAR文件中嵌入的副本打開數據庫文件。 UCanAccess要求數據庫文件是“真實”文件,因此您需要從JAR中提取它,然后打開該副本。

例如,要將數據庫從JAR提取到一個臨時文件中:

java.io.File dbFile = java.io.File.createTempFile("tempdb", ".accdb");
dbFile.deleteOnExit();
java.nio.file.Files.copy(
        YourClassName.class.getResourceAsStream("/stuff.accdb"), 
        dbFile.toPath(), 
        java.nio.file.StandardCopyOption.REPLACE_EXISTING);
String connStr = String.format(
        "jdbc:ucanaccess://%s;immediatelyReleaseResources=true", 
        dbFile.getAbsolutePath());
Connection conn = DriverManager.getConnection(connStr);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM