打包在可执行 jar 中的可写数据库

Writable databases packed in an executable jar

是否可以将可写数据库打包在可执行 jar 文件中,并由同一个 jar 更新?

如果可以提供有关 Derby Embedded 数据库的任何相关信息,特别是那会很棒,但如果可能的话,我愿意更换数据库提供商。

恐怕做不到或者需要很大的努力。

我猜您正在尝试制作一些 "portable" 应用程序,它不需要任何额外的步骤 运行 它但仍然使用数据库。如果是这种情况,我建议您允许用户指定数据库文件所在的位置,例如使用命令行:

java -jar uber-jar.jar --db=/opt/database

或者只使用 user.home 变量作为基本路径。

然后只需传递 jdbc 连接字符串中的位置。