使用带有MySQL DB的Java Desktop Application完成后如何创建安装程序?

Sah*_*wal 7 java mysql deployment installation netbeans

我已经用mySQL数据库编写了一个Java Desktop应用程序.我想让应用程序在netbeans之外运行,并让它安装在其他计算机上.我知道构建项目和创建可运行的jar文件,但是这需要我将数据库本身导出到我希望运行应用程序的其他计算机上.我的问题是两部分:

1)有没有办法可以创建一个安装文件,同时将数据库和应用程序安装在一起?

2)我的数据库路径也是硬编码的,这是否意味着我每次为某人安装应用程序时都必须更改代码,更好的方法是什么?

谢谢

Sor*_*row 8

  1. 是.您可以使用一些设置构建器,例如InnoSetup.但就个人而言,我喜欢给我的客户一个zip文件,他们可以随意提取.可执行jar应该能够自己处理所有事情(我喜欢它,不需要安装软件,只需解压缩并运行).
  2. 如果是硬编码,然后是(但,什么你的意思硬编码?文件路径?IP地址?).您应该使用属性或配置文件来处理软件所依赖的路径和其他外部事物.该软件应该从这些文件中读取.在启动时检查是否存在此类文件 - 如果缺少,则应向用户显示可以输入配置的窗口.

至于使用您的代码部署MySQL - 考虑使用服务器,以便您的用户不必被迫安装MySQL,而是通过网络连接到它.如果您只需要数据库本地存储数据,为什么不使用SQLite或类似的基于文件的数据库引擎?

以上答案只是建议,更多地反映了我的思考方式.我很乐意听到有更多经验的人的发言.尽管如此,我希望答案有点帮助:)

  • 这属于*在本地存储数据*,您可能要考虑[SQLite](http://www.sqlite.org),对我来说 - 这是一个更好的主意.但是,如果你真的想坚持使用MySQL,那么url,端口,用户名和密码应保存在一些配置文件中(密码,显然,以某种方式编码,因此它不能保存为普通的).这当然意味着您的每个客户都必须安装MySQL.最终,如果在本地网络中,在一台机器上设置MySQL服务器并让其他机器连接到它.这样您就不必为所有用户安装客户端,只需安装一个客户端. (2认同)