[英]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.