包含数据库的程序的安装版本

时间:2012-06-22 13:55:10

标签: java postgresql

我有Netbeans 7.1如何制作我的程序的安装版本?我需要它:Win32和Win64。我还必须包括PostgreSQL数据库。

2 个答案:

答案 0 :(得分:3)

如果“Netbeans 7.1”表示您使用Netbeans平台构建了应用程序,则可以为Netbeans平台应用程序生成安装程序。除其他事项外,请参阅Customising the Netbeans Platform InstallerGenerate a NetBeans Platform Installer with NetBeans IDE 6.9

对于PostgreSQL:我建议自动安装PostgreSQL。如果您愿意,请在您的应用旁边提供安装程序,但请不要为用户安装。

为什么?

  • 关于PostgreSQL列表的许多问题来自于在软件捆绑时安装了古老版PostgreSQL的人。 (是的,我正在看你的Poker Tracker)。如果您鼓励用户下载您支持的主要版本的最新版本,那么您将不会遇到这些问题。

  • 您的应用可能会尝试使用预设的密码和位置静默运行Pg安装程序。如果其他人的应用已经为相同的主要版本运行了Pg安装程序,或者如果用户已经安装了Pg,那么您的应用将无法配置安装,因此无法正常运行。

  • 如果用户以后想要安装PostgreSQL并且不知道他们已经安装了它们,他们就不会知道PostgreSQL服务密码或“postgres”管理员密码,所以他们会感到困惑关于为什么Pg安装程序不能按预期工作的原因。他们最终将成为PostgreSQL邮件列表中另一个混淆的用户。

我真的希望EnterpriseDB安装程序将来能够支持“品牌”安装,其中安装进入一个单独的位置,并在非默认端口上单独的服务帐户,所以它不会继续定期Pg安装。现在情况并非如此。

如果您确实必须使用您的应用程序安装PostgreSQL,请使用.zip二进制包(对于Windows)并使用非默认端口在非默认位置运行initdb。这样你就不会破坏常规安装。这也意味着您可以在Linux系统等其他平台上更加干净地安装,其中PostgreSQL通常被打包为操作系统的一部分。

答案 1 :(得分:1)

Java在JVM上运行,这意味着您的应用程序所需的唯一安装是其计算机上安装的处理器的Java运行时。

您可以分发JAR,或者如果需要,可以使用其他语言或批处理文件创建EXE来执行JAR。如果您采用EXE路由,则必须在两个体系结构上进行编译才能兼容。

相关:What does it mean for Java to be portable?