JAR安装程序,可自动检测Java是否存在并自动启动应用程序

时间:2009-06-15 12:38:55

标签: java installer cross-platform software-distribution autostart

我需要构建一个执行以下操作的安装程序:

  1. 在我的客户端上安装我的jar。
  2. 自动检测是否安装了JRE(在这种情况下不会重新安装),否则安装它时无需用户点击其他按钮。
  3. 启动客户端时自动启动应用程序。
  4. 适用于Windows,Mac和Linux。
  5. 知道如何去做吗?

6 个答案:

答案 0 :(得分:6)

如果商业工具没问题,我可以推荐install4j。 1,2和4很容易做到,但约3我不确定。 编辑:您可以通过将您的应用程序安装为“服务”来实现这一点,install4j支持所有平台。从Features页面引用:

  

install4j提供全面支持   生成和安装服务   (守护进程)。对于服务,install4j   生成服务可执行文件   Windows,Mac OS X和Mac上的启动项   在Unix / Linux上启动/停止脚本   平台。

编辑:关于#2,JRE检测:install4具有非常好的,灵活的JRE捆绑/检测选项。您可以包含JRE(静态或动态,共享或不共享)或者更喜欢使用已存在的JRE,并可以从安装程序中下载JRE作为后备。请查看以下文档:How Installers Find a JREJRE Bundles

More about my experiences with install4j。)

对于其他工具,您可以查看SO上的一些早期Java installer问题:

答案 1 :(得分:1)

InstallAnywhere等商业工具可以做到这一点。安装JAR(以及链接等)之后,安装程序可以检查注册表是否已安装Java并继续。只要安装程序支持所有需要的平台,你就可以了。

答案 2 :(得分:1)

您可以使用launch4j,但它不会自动安装java。但也许有一种方法可以通过打包JRE来实现这一目的。

答案 3 :(得分:1)

您可能还想查看BitRock InstallBuilder,它提供内置功能来执行您想要的操作。我们很乐意为您构建一个示例安装程序,请给我们留言。

答案 4 :(得分:1)

我建议下载热门Java程序(如limewire)的构建脚本的源代码,并按照他们的示例进行操作。结束。

......或者你可以这样做:

  • 我已经完成了JRE检测 如果需要,可以下载/安装可再发行组件 Windows上的NSIS。也许.msi比NSIS创建的installer.exe更好。我相信msi更像是mac上的软件包,所以它们允许适当的更新。也许NSIS会创建MSI ......不确定。
  • Mac只是一个Java App bundle,你在中​​指定JRE和其他Java信息 info.plist,您可以选择创建.pkg 文件以使用命令行dmg程序为用户提供安装程序并以dmg捆绑。
  • 我没有做过Linux而且不打算......抱歉:)

这一切都是相当大的工作。我第一次做了Windows的东西然后几年后做了Mac的东西。

您可以在NSIS构建脚本和Ant中集成所有这些内容。我不记得为什么我没有使用install4j。可能我太便宜了:)

答案 5 :(得分:0)

没有听说过适用于所有这些平台的任何内容,但JSmooth可能有所帮助(适合您在Windows上的需求)。大约两年前我用过它,效果很好。