我创建了一个使用 SQLite 作为本地数据库的 Swing 应用程序。数据库文件位于项目的根目录中。
Project/DatabaseFile
该应用程序在 Eclipse 上运行良好,但是当我运行打包的可执行 Jar 时,出现以下错误:
No such table : table1
这意味着无法访问数据库。当我检查生成的 JAR 文件的内容时,数据库文件已经不存在了。
在代码中,我将数据库链接如下:
jdbc:sqlite:DatabaseFile
我的问题是,如何在可执行 Jar 中包含 SQLite 数据库?
编辑
当我将 DB 文件放在源文件夹中Project/src/DatabaseFile
并将路径更改为 时jdbc:sqlite:src/DatabaseFile
,它可以在 Eclipse 上运行,但在将 Jar 文件作为java -jar Project.jar
. 它说:
path to 'src/DatabaseFile': 'C:\Users\name\src' does not exist
我想我需要为数据库指定一个相对路径。
编辑
这是我连接到数据库的方式:
public Connection getConnection(){
try{
Class.forName("org.sqlite.JDBC").newInstance();
con = DriverManager.getConnection("jdbc:sqlite:src/DatabaseFile");
} catch (Exception e) {
Log.fatal("Méthode: getConnection() | Class : SQLiteConnection | msg system : " + e.getMessage());
}
return con;
}