通过CD-ROM分发Java Web Start应用程序

众所周知,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 Primer

Java 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 应用程序。

时间: 2025-01-21 02:00:48

通过CD-ROM分发Java Web Start应用程序的相关文章

利用 Java Web Start发布你用java程序

web|程序 前言:关于 JWSJWS 是作为 JSR-56 的一部分而创建的,目的是提供一种方法来分发在客户端上的 JVM 中运行的 Java 应用程序.JWS 包括以下特征: 部署 运行 JWS 应用程序包括选择 HTML 链接,与打开新的页面没有什么区别,惟一的不同之处在于 Web 服务器页面是 .jnlp 文件,该文件启动 JWS 插件来在客户端上本地下载和执行应用程序. 缓存 一旦应用程序下载完毕,就可以把它缓存在客户端电脑上.每当应用程序重新启动时,JWS 就检查服务器,查看是否有更

部署Java Web服务

引言 在过去数年里,随着万维网联盟(World Wide Web Consortium,W3C)更新了核心规范,并引入了弥补 Web服务最初缺陷的新规范,Web服务发生了大量的变化.W3C 的Web Services Activity 小组所维护的规范以独立于供应商的方式将 Web服务作为一组 XML 规范进行处理. 同时,Java Community Process (JCP) 也在维护自己的规范集,以将 W3C 的建议合并到 Java 语言中.Java APIs for XML(JAX-RP

一种新的攻击方法——Java Web表达式注入

0×00 引言在2014年6月18日@终极修炼师曾发布这样一条微博:498)this.width=498;' onmousewheel = 'javascript:return big(this)' style="width: 477px; height: 446px" border="0" alt="新攻击方法--Java Web Expression Language Injection" src="http://s5.51cto.

Java web应用开发概览(转贴)

web Web开发(Web Development)是JBuilder Professional 和 Enterprise版权的特性. Applet 开发是 JBuilder所有版本开发的一个特性.本节介绍了web开发技术.包含了他们的异同点.讨论了如何决定使用何种技术.我们首先介绍这些技术的概念. Web应用程序技术 技术描述 Applets 一种可以被浏览器下载并在浏览器上运行的Java小应用程序. Servlets 可以处理客户请求的运行在服务器端的Java应用程序. JavaServer

使用Java Web Start部署SWT应用程序

开发非常漂亮的客户机端的Java应用程序 简介:在过去几个月里,标准窗口小部件工具箱(Standard Widget Toolkit ,SWT)不断地取得进展,并汲取越来越多Java 开发人员的集体智慧.在 SWT应 用程序开发过程中的某一阶段 - 通常是在基本原型运作之后 - 开发人员开始 关注部署过程.与传统的 Java应用程序不同,SWT 应用程序需要在应用程序运 行之前装入某些特定于操作系统的库.虽然正在进行的这些库的部署和维护似乎 是件头痛的事,但是请放心,有一种方案可以解决这种问题,

Java Web服务进阶

随着最近 Sun Microsystems 的 Java Web Services Developers Pack(Java WSDP)版本 1.0 的发布,Java 开发人员现在可以拥有一个方便的.集所有功能于一身的下载包,用来帮助在 Java 平台上开发 Web 服务.Java WSDP 包含 Java XML Pack 中的所有用于 XML 的 Java API(Java APIs for XML(JAX)),还包含有 Apache Tomcat 服务器以及为开发与测试 Web 服务提供一

阿里云服务器云数据库免费体验(Java Web详细实例)

版权声明:本文为博主原创文章,转载注明出处http://blog.csdn.net/u013142781 目录(?)[+] 一.效果展示 博主部署了两个war包到阿里云服务器上,一个是没有连接数据库的,另外一个是连接了数据库的. (由于阿里云服务器免费使用15天,下面链接约2016年3月9日后无效) (1)无数据库版访问地址:http://120.25.235.171:8080/web_exception_project-0.0.1-SNAPSHOT/login.jhtml  只能用luoguo

Tomcat部署Java Web项目教程

Tomcat是一个开源的且免费的Java Web服务器,常用来作为web开发的工具.它可以托管由servlet,JSP页面(动态内容),HTML页面,js,样式表,图片(静态内容)组成的Java Web应用程序. 部署方式 在阿里云服务器下部署JAVA提供三种部署方式: JAVA镜像部署 JAVA环境(CentOS7.2 Nginx Tomcat8 JDK) 一键安装包部署 OneinStack一键PHP JAVA安装工具<专业版> 手动部署(源码编译安装/YUM安装) 一般推荐镜像部署适合新

阿里云部署Java web项目初体验(转)

          林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka          摘要:本文主要讲了如何在阿里云上安装JDK.Tomcat以及其配置过程.最后以一个实例来演示在阿里云上部署Java web项目. 本文实例访问:http://120.24.19.24:8080/JavaHelloWorld-0.0.1-SNAPSHOT/ (到2016.3.9就不能访问了) war包有需要的可以来这里下载:http://download.