部署带有嵌入式 apache Derby 数据库的 Java fat jar

Deploying a Java fat jar with embedded apache Derby database

我有一个正在开发的桌面 Java 应用程序,它有一个嵌入式 Apache Derby 数据库 (Link)。现在,当我 运行 通过我的 IDE 应用程序时,一切都运行良好并且按预期运行。但是,当我创建 fat jar(包括所有依赖项)时,当我启动应用程序时它可以正常启动,但我收到以下错误消息: java.sql.SQLSyntaxErrorException: 架构 'TDB' 不存在

对我来说,这表明我创建的模式没有被复制到我的新 jar 文件中,但在那种情况下我不确定我是否正确创建了我的 jar。

我希望它做的是当我 运行 我的 pom 的打包目标时,它会创建一个新的 jar,其中包含所有依赖项,我可以有效地将其提供给其他人并且他们可以 运行 它作为一个功能齐全的桌面应用程序(就像我可以 运行 通过我的 IDE 它一样,只是没有 IDE)。

非常感谢任何帮助,几天来我一直在努力解决这个问题。

斯图

我认为有两种方法:

  1. 您确定数据库文件的文件系统位置并确保它包含在您的部署中 - 这应该可以在 IDE
  2. 您包含一个启动进程,用于检查数据库是否存在,如果不存在,则即时创建模式