2012-05-23 42 views
22

我有一个Java .jar应用程序,我想分发给我的Mac或Windows客户端。我想使用一个工具,它将我的jar文件包装到Mac和Windows的.dmg和.exe包装中,分别在运行时执行此操作:如何将Java应用程序捆绑到Mac/Windows?

  1. 检查JRE是否安装;如果没有,它会从Oracle安装JRE6。否则,它会将安装的JRE更新到最新的1.6.x版本。
  2. 在“开始”菜单(在Windows中)或“应用程序”文件夹(在MacOSX中)中为我的打包应用程序创建快捷链接,并让我的应用程序使用上述JRE运行支持易于“Windows卸载应用程序”。对于Mac,只需将.app拖到垃圾箱即可删除。

可选功能:

  1. 支持与平台无关的应用程序图标
  2. 支持自动更新到罐子
  3. 支持参数的JRE运行我的.jar
  4. Linux支持的时候(.deb或.rpm)
+1

我觉得Package Maker和Advanced Installer可以做你想要的一切。我不认为你会找到一种适用于Windows和Mac的工具。您可能需要单独进行包管理。如果您告诉我们您的软件包制造商,高级安装程序未满足您的哪些要求,或者您尝试了其他方法,我们可能会提供帮助。 – jahroy

+0

请注意,jre 1.6仅适用于Apple提供的下载和软件更新。 1.7可从Oracle获得。 – Mark

+0

我不知道你的预算是多少,但看看:[Flexera Software的InstallAnywhere](http://www.flexerasoftware.com/products/installanywhere.htm) – msiyer

回答

8

结帐Package Maker对于Mac和Windows的Advanced Installer

我已经将它们用于您列出的所有要求。

我没有使用它们进行自动更新,但您可能必须将该逻辑构建到您的应用程序中。

不过,不要指望他们为你做所有的工作。

预计花费相当多的时间为每个平台构建安装程序。

我确定Windows和Linux有很多选项。 高级安装程序恰好是我用过的唯一一个。

我相信包制造商是Mac的标准。这非常棒,易于使用。

祝你好运!

0

对于Windows上的部署,我喜欢使用Launch4j来封装我的应用程序jar并创建一个本机Windows可执行文件,它可以检测并使用已安装的JRE,或者允许您捆绑自己的应用程序。它是快速,轻量级的,并且可以轻松地用Ant(或Maven)编写脚本作为构建过程的一部分。

与此相结合,我通常使用NSIS创建一个快捷方式的安装程序,并允许从控制面板安装/卸载/修复。通过一些工作,这也可以通过Ant脚本化,也可以从Linux平台构建。

这些解决方案显然不适用于Mac部署,但我怀疑如果您想为最终用户提供最佳体验,您将不得不为不同平台使用不同的工具。

1

我已经研究了一段时间,以便我可以在Linux和Windows上安装应用程序。我找到了最好的替代品 -

相关信息,可如何使用它在这blogpost本土。但是在Linux中安装它让我使用.sh脚本。至于mac,我的知识是有限的。希望这可以帮助。

1

请注意,如果您将应用程序开发为NetBeans平台应用程序,那么netbeans将为您生成跨平台安装程序(包括for mac)。

事实上,它的netbeans应用程序对应用程序的外观和感觉几乎没有影响,您仍然可以使其行为与任何独立的swing应用程序几乎相同。

这具有以下优点,我想使它成为一个引人注目的选项: - 跨平台 - 它的免费 - 不需要JDK之前,在运行安装程序 要安装 - 集成了软件更新过程

1

已经有一些很好的答案,但我想JavaWebStart需要提及。 当然,它只适用于Web部署,但安装后您的应用程序也可能脱机。

功能(自动更新,JVM版本检查,桌面图标)可用。

需要考虑的事情:

  • 你的应用程序需要被烧焦,有一个像一个“正常”的应用程序的访问权限。
  • afaik您不能以除网络下载以外的其他任何方式发送您的应用程序。
相关问题