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

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

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

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

谢谢

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

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

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

我同意悲伤。

如果我必须使用MySQL,它通常是通过网络,因为我不想让我的客户通过自己安装MySQL的难题。 但是,如果您在本地使用MySQL,请调查MySQL无人值守安装+ NSIS安装程序。

如果你可以使用你想要的任何数据库,我只使用javadb / derby。 它现在与大多数Java安装捆绑在一起,如果不是全部,你需要的是向你的应用程序添加一个jar文件。

按照“硬编码”路径,我真的不明白你的意思。 你真的没有“路径”,我假设你的意思是连接字符串。 您不必对连接字符串进行硬编码,只需将一些参数放在属性文件中并从中构造连接字符串即可。

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

请参阅我对基于Java的独立应用程序的回答。

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

让数据库安装程序弹出JFileChooser ,询问用户他们要安装数据库的位置。 使用JNLP API PersistenceService存储该路径。 这是我的演示。 PersistenceService 。