2010-07-08 50 views

回答

3

毫无疑问,我建议您使用Java Web Start,因为它允许您轻松控制所使用的版本(以及目前为止更容易使用的更新机制)。

+0

+1为标准Web Start解决方案 – 2010-07-08 16:14:57

3

取决于你需要什么。

我们发现使用One-JAR + JSmooth可以提供非常好的用户体验,因为它允许我们分发一个可以放在用户系统任何位置的EXE文件,而不是安装二进制文件,需要安装和卸载等。等等。JSMooth检查是否存在适当的Java运行时,并且如果没有发现,则重定向到官方下载站点。

One-jar的原因是,你通常需要使用最好有独立的库jar,但JSmooth只允许一个jar文件。

此外,One-Jar SDK和JSmooth可以在不绑定Windows的情况下编写脚本,因此我们可以在运行在Linux上的Hudson引擎上构建新版本。

1

在过去,我使用了像launchForJ这样的java安装程序包。但是,许多这些软件包使用Java,因此您可能需要使用本地windows代码编写的批处理或简单可执行文件,以快速检查Java是否已安装,然后运行安装程序。

由于Java在安装过程中使用系统变量,因此应该能够以这种方式检查您需要的版本(或更高版本)是否存在。

0

标准的方法是使用Java Web Start

使用Java Web Start技术,独立的Java软件应用程序可以通过单击网络进行部署。 Java Web Start的确保应用程序的最新版本将被部署,以及正确版本的Java运行时环境(JRE)的

Maven有一个Webstart Maven Plugin帮助构建可通过Web部署的应用程序软件包开始。

另一种解决方案是使用跨平台安装程序生成器来生成安装程序。我个人很喜欢IzPack(我认为这JSmooth是非常相似的,但我有一个的IzPack更多的经验),如果你是专门针对Windows平台上,你可以使用的IzPack来Build [a] Native Windows Installers with IzPack Native Launcher

的问题仍然的IzPack出现当 目标系统没有安装JRE 。用户首先需要安装 ,然后运行IzPack 安装程序。这与Linux或BSD用户 不存在问题,因为他们通常是熟练的,并且他们知道如何通过手动或使用包装 系统(RPM,DEB,ebuilds,端口, ...)来执行此操作。同样,一个Mac OS X用户 没有太大的问题,因为它是 可用于操作系统。 但是在Windows平台上,情况更复杂 ,因为 必须安装JRE。更糟糕的是, 几个实例可以安装在 一个有时凌乱的情况。

IzPack Native Launcher试图通过 来解决这个问题。它是一个C++原生 应用程序,可在 下获得非常宽松的MIT许可证,而 可将wxWidgets用于GUI。它是 因此是跨平台的(对于 历史学家:它最早是在 上开发的一个FreeBSD框),但大多数人会在 上需要它。它使用一个简单的 配置文件,并将首先检查一个JRE的 。如果可以找到, 它会弹出一个对话框,让下面的 选项之间的 用户选择:

  • 手动从互联网上指定一个JRE位置
  • 下载一个
  • 安装一个这是由包装商提供的(如果有的话)。

IzPack还提供Maven Plugin。值得支票。

+0

即使对Java 6进行了大修,Java WebStart仍然不知道如何处理更新,如“有新版本,在后台下载?”正常。 – 2010-07-09 13:05:07

+0

@Thorbjørn事实上,不是JWS如何工作,你必须要求用户重新启动他们的应用程序。 – 2010-07-09 13:21:30

+0

,然后他们必须下载完整的升级之后才能继续工作......感叹.. – 2010-07-10 21:27:55

相关问题