【问题标题】:Executable Java application (JAR) with database packaged inside包含数据库的可执行 Java 应用程序 (JAR)
【发布时间】:2015-07-31 03:25:15
【问题描述】:

我正在使用 Swing 和 MySql 开发应用程序。我想将它分发给客户,他们可以在他们的终端/PC 上运行应用程序,而不必担心安装 MySql 和其他技术内容。所以,我想到了捆绑 JRE 和 MySql,但后来我遇到了Correctly distributing a Java application with database,它说这样做并不可取。因为它会增加磁盘上的应用程序大小,这显然是一个问题。

所以,我的问题是

  1. 如何实现相同的目标以及我应该使用什么工具和资源。
  2. SQLite 是一个不错的选择吗?

感谢任何帮助。

【问题讨论】:

  • 数据库是“只读的”吗?顺便说一句 - 部署 Java 桌面应用程序的最佳方式是使用 Java Web Start。它包括启动文件的一个特殊部分,用于调用您可能用来设置和填充数据库的安装程序,以及一个允许安装程序编写主应用程序所需的任何参数的序列化机制。访问数据库。
  • “正确地分发带有数据库的 Java 应用程序,这表明这样做并不可取。因为它会增加磁盘上的应用程序大小,”(耸耸肩)如果应用程序.需要一个数据库,它需要一个数据库。选项是依靠用户预安装数据库或安装一个以供应用程序使用。第一个不是很可靠,而第二个会花费更多的下载字节数。
  • 没有数据库是读/写的,当然会查看 Java Web Start。
  • 是的,这两个选项太棒了。这就是为什么要寻找可以达到目的的解决方案。
  • 我不会就数据库提供建议,因为我没有使用它们的经验。至于“假设存在/安装数据库”,我会选择“安装(轻型)数据库”。

标签: java mysql database swing deployment


【解决方案1】:

请尝试使用 HsqlDb 访问链接 [http://hsqldb.org/]

易于使用,您可以将其嵌入到您的 jar 中。

【讨论】:

  • 您还应该在此处提及链接的某些组件,因为当链接失效时,用户将无法访问内容。 “现状”,您提供的链接中没有内容
【解决方案2】:

在我看来,SQLite 和 Apache Derby (http://db.apache.org/derby/) 都适合这样的计划。几年前我用德比做过这样的事情,它仍在运行。当时我只是打包了包含jre,程序,libs(jar)和derby的数据文件夹的文件夹。

我记得:sqlite 非常易于使用,而 derby 的学习开销更大。

【讨论】:

  • 您能否提供有关如何捆绑它们的信息?非常感谢
  • 它只是上面提到的一个压缩文件夹。 zip 包含 jre、所有需要的 jar、derby 的数据文件夹和启动 jre 的批处理文件。没有什么特别的技巧要知道。
  • 非常感谢 @chris 的好主意,你为我节省了很多时间。接受了答案。在网上搜索有关 Apache Derby/Java DB 的信息时,发现了一个很棒的link,它解释了它的每一个角落,并且实际上提供了很多关于我们为什么要使用它的信息。干杯!!!
  • 是的。因为对于像我这样想要学习的初学者来说,只需要一个启蒙,就是这样。我对数据库风暴和开发中的所有技术问题感到困惑。所以,帮了大忙。干杯,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-12
  • 1970-01-01
  • 1970-01-01
  • 2012-11-30
  • 2017-08-03
相关资源
最近更新 更多