首页 / 软件开发 / JAVA / 通过CD-ROM分发Java Web Start应用程序
通过CD-ROM分发Java Web Start应用程序2011-07-08 Sun / Luan O"Carroll众所周知,Java Web Start (JWS) 支持以基于 Web 的方式来分发应用程序。 既然如此,为何还要通过 CD-ROM 来分发 Java Web Start (JWS) 应用程序呢? 这有许多原因。对于较大的应用程序,完整安装可能会是一项宠大的下载任务, 即便使用高速带宽也无济于事。其次,并非所有的桌面系统都是在线的,并且不 一定都能访问互联网(例如,考虑到公司的安全性)。最后,部分人仅仅是喜欢 使用 CD。一家客户公司曾要求将它们的应用程序分发到世界的任何范围,包括宽带覆盖 不到的地方。该应用程序包含大量产品的相关信息,包括详细的图表。所有这些 信息构成了应用程序的主要部分,并且包括 JVM 在内的完整安装将超过 40 MB。 除此之外,公司还希望能够在商品交易会通过 CD 分发应用程序,并附赠宣传材 料;因此,基于 CD 的分发是非常有必要的。通常,CD 安装可以采用商业或开源 的安装程序,而这些安装程序比比皆是。但是,使用 Java Web Start 运行应用 程序时,需要将应用程序安装在特定的位置,而不受用户的意愿控制,这是安装 程序的规定。本文介绍如何通过 CD 或互联网安装应用程序。安装流程具有如下要求:已安装的应用程序检查更新并与 JWS 缓存集成。安装应在未安装 Java 的机器上完成。已安装的应用程序应不要求互联网连接。安装必须易于使用,并且必须提供一个简单的用户界面。应用程序安装通常由通用的安装程序执行,但传统的安装流程会有效地创建一 个单独的、对 JWS 一无所知的应用程序。每次发布更新时,用户都需要下载并安 装新版本,而 JWS 应用程序只需要下载经过更新的组件,这种流程更加有效和可 靠。因此,本文还将介绍 JWS 应用程序的安装程序。JWS PrimerJava Web Start 允许通过到 JNLP 文件的链接来启动 Java 应用程序。JNLP 文件描述主方法或应用程序的入口点,并引用应用程序所使用的资源。当 JWS 应用程序启动时,JVM 将尝试访问所需的资源,并根据需要更新它们 ,然后将文件复制到缓存中。随后尝试启动应用程序时,JWS 可以检查该缓存并 跳过资源下载步骤。如果客户机器为离线状态,或者如果无法连接服务器,则 JWS 可以在离线模式中运行应用程序。如果 JWS 启动文件(JNLP)保存在 CD 中,则 JWS 将联系服务器并下载任何 新文件。显然,如果客户机器在线,这将破坏通过 CD 分发文件的计划。相反, 我们需要采用一些方法来更新 JWS 缓存,就像应用程序已由 JWS 预先载入一样 。更新 JWS 缓存Java 5 版本的 JWS 包含一个 -import 选项,它的作用是将特定位置下的 JWS 应用程序导入到缓存中。此位置上的 CD 映像只是 Web 服务器上的一个副本:JNLP 文件、.jar 文件 和该 JNLP 文件引用的资源。如果使用 servlet 服务于此 JNLP,则 CD 映像将 需要生成的 JNLP 文件的一个功能完备的快照。因此,可以通过调用以下命令将 CD 映像安装到 JWS 缓存中:<JAVA_HOME>/jre/bin/javaws -codebase <CACHE_IMAGE> - import <CACHE_IMAGE>/<XXXX>.jnlp其中,<JAVA_HOME> 是 JVM 的根目录,<CACHE_IMAGE> 是 JWS 应用程序在 CD 上的位置,而 <XXXX> 是应用程序 JNLP 文件的名称。稍 后,我们将介绍如何自动化此命令并将它包装在一个简单的 GUI 中。在安装缓存中的应用程序时,JWS 会提示用户安装启动应用程序的桌面和菜单 快捷方式。完成 JWS 安装后,我们可以再次调用 JWS 启动最新安装的应用程序 。<JAVA_HOME>/jre/bin/javaws -import <CACHE_IMAGE>/<XXXX>.jnlp这将再次使用 CD,但 JWS 这次将使用 JNLP 文件引用的安装。如果机器已与 互联网连接,它将采用通常方式检查更新,然后启动应用程序。如果没有网络连 接,则应用程序以 CD 交付的标准启动。当用户下次启动应用程序时,他们可以使用菜单或桌面快捷方式,而不再需要 CD。或者,用户可以通过页面上指向相同 URL/JNLP 文件组合的链接来启动应用 程序;也就是站点上的原始版本。JVM 因素整个过程中的一个问题是,上述命令需要 JVM 的支持,而在少数一些情况下 ,系统中默认可能没有安装 JVM 或者 JVM 在系统路径中不可用;因此,需要采 取一些额外措施来定位可用的 JVM。此外,当用户插入 CD 时,安装程序应该能 启动并检查 JVM 是否已存在。检查 JVM 的流程如下所示:检查 JVM(针对安装程序)。如果未检测到 JVM,则安装它。启动安装程序,显示通常的许可信息。安装目标 JVM(如果应用程序需要)。导入 JWS 缓存。启动 JWS 应用程序。