Java Web Start
客户机端开发和分发 Java 应用程序
jsp帮助文档级别: 初级 Steven Kim (kimst@us.ibm ), 软件工程师, Tivoli-IBM 2001 年 9 月 11 日 Java Web Start 是帮助客户机端应用程序开发的一个新技术,它的独特之处在于将您从关心客户机是如何启动的(从 Web 浏览器或是桌面)中解放出来。另外,该技术提供了一个使 Web 服务器能独立的分发和更新客户机代码的集合部署方案。软件工程师 Steve Kim 介绍了该新技术(该技术预定将集成进Java 1.4 的最终发行版),并从开发者和用户的角度进行了描述。您可以在 讨论论坛与作者和其他读者分享您对这篇文章的看法。
在现今的不断发展的软件业市场,用户强烈要求客户机应用程序不但能运行在台式机环境,还能运行在因特网。用户希望他们从基于 Web 的应用程序获得与从台式机获得的相同的功能和支持,而且最好是用瘦客户机接口打包。目前,最通用的解决方案是开发两个独立的 Java 应用程序:一个作为台式机应用程序执行,另一个模仿台式机应用程序的多数功能,但是通过 Web 访问。这对开发者是个负担,开发者要写两个独立的在不同的执行环境执行相同的功能的应用程序,然而对软件公司也是个财政负担,软件公司被迫为两个独立的应用程序提供支持。为缓解该问题,Sun Microsystems 引进了 Java Web Start ,它是个使 Java 应用程序可以从台式机或 Web 页面启动的客户机端技术。这消除了为 W
eb 应用程序开发 Java 支持的需要,而且还提供了一个有效方式来升级、维护和管理任何通用的 Web 服务器都支持的客户端的 Java 应用程序。
什么是 Java Web Start ?
Java Web Start 是一个软件技术,它包含了 applet 的可移植性、Servlet 和 JavaServer Pages (JSP )的可维护性以及象 XML 和 HTML 这样的标记语言的简易性。它是基于 Java 的应用程序,允许从标准的 Web 服务器启动、部署和更新功能完全的 Java 2 客户机应用程序。在第一次启动 Java Web Start 时,用户可以从 Web 下载新的客户机应用程序;之后这些应用程序可以通过 Web 页面的链接或(Windows 中的)桌面图标或“开始”菜单初始化。应用程序在 Java Web Start 下快速初始化,被高速缓存在客户机,并且可以远程的离线启动。另外,因为 Java Web Start 是从 Java 2 技术建立起来的,所以它继承了 Java 平台的完整的安全性体系结构。
由于 Java Web Start 自身是一个 Java 应用程序,所以该软件是平台独立的,并且支持 Java 2 平台的任何客户机系统都支持该软件。当客户机应用程序启动时,Java Web Start 自动执行更新,在从原来的高速缓存(倘若存在高速缓存)装入应用程序的同时,从 Web 下载最新的代码。Java Web Start 还提供了一个 Java 应用程序管理器(Java Application Manager )实用程序,既提供了多种选项,如清除下载的应用程序的高速缓存、指定多种 JRE 的使用、设置 HTTP 代理,还允许最终用户组织他们的 Java 应用程序。
文档选项
将此页作为电子
邮件发送 未显示需要 JavaScript
的文档选项
样
例代码
Java Web Start 对Java 插件
Java Web Start 和Java 插件的一个共同作用是:允许Java 程序从任何地方、在任何平台安全运行。
两种Java 技术都提供了可以启动和执行Java 程序的“沙箱(sandbox)”安全环境,还具有高速缓存应用程序和指定使用的JRE 的能力。Java Web Start 和Java 插件的根本不同是Java 插件限于在Web 浏览器环境中运行的Java applet。Java 插件严重的依赖于Web 浏览器的JRE,并且如果没有浏览器就不能运行。另一方面,Java Web Start 可以在Web 页面单击链接或是单击Java 应用程序管理器来启动Java 应用程序。在Windows 操作系统中,用户可以从开始菜单或是只要双击桌面图标来启动应用程序。如果浏览器窗口被关闭,从Web 浏览器启动的客户机应用程序不会受到影响。
尽管Java Web Start 确实支持Java applet,而且确实包含内置的Appletviewer,但这个技术的最初目的是启动和部署Java 客户机应用程序。某些约束,如applet 的策略文件不受支持。
用户观点的Java Web Start
Java Web Start 不仅允许开发者开发可从Web 页面启动和执行的应用程序(不只是applet),还强调了无需任何用户交互就可以为现存的客户机代码提供透明更新的部署方案。为帮助您理解这个过程、
帮助您决定是否为与Java Web Start 的兼容性而开发自己的应用程序,我们将从用户的观点来看这个产品。我将从两个基本的用户场景(安装Java Web Start 和从使用Java Web Start 的Web 下载和启动应用程序)的基本解释开始。
首次安装Java Web Start
Java 插件无需用户在客户机安装任何的应用程序,与Java 插件不同,Java Web Start 必须要安装在每台用于从Web 来启动Java 应用程序的客户机。当用户试图用Java Web Start 启动一个基于Web 的应用程序时,Web 浏览器将启动Java Web Start 从而开始下载适当的文件。
如果Java Web Start 安装在本地机的话,那么需要的应用程序将正常的启动和进行。另一方面,如果Java Web Start 还没安装,用户将被提示要下载该程序。一旦用户同意下载Java Web Start 并且已经下载了该文件,用户就必须运行程序来安装Java Web Start,如图1 所示。
图 1. 安装Java Web Start
在安装过程中,Java Web Start 安装程序将判断在客户机上是否安装了Java 2 环境。如果未安装,将出现一个安装对话框,如图 2 所示。
图 2. Java Web Start 搜索Java 2 环境
一旦装好了Java Web Start,就必须关闭所有的打开的Web 浏览器。新的MIME 标记(带有jnlp 扩展名)是为Web 浏览器定义的,用于Web 浏览器启动自身(Web 服务器)和Java Web Start 之间的联系。(JNLP 是Java Network Launching Protocol 的首字母缩略字。JNLP 文件确定哪些JAR 文件和资源有助于客户端的Java 应用程序。)一旦Web 浏览器被关闭并重新启动,用户可以再次单击相同的链接来启动所要的应用程序。Web 浏览器然后将与Java Web Start 联系,并且应用程序将开始启动过程。
“Developer's Guide for Java Web Start” (请参阅参考资料)包含能够查出本地是否安装了Java Web Start 的JavaScript 和Visual Basic 脚本。
用Java Web Start 启动应用程序
当用户首次单击一个链接来启动一个客户端的Java 应用程序时,发生下面的过程:
∙Web 浏览器被指示运行Java Web Start。
∙Java Web Start 以启动闪屏开始
∙然后Java Web Start 与指定的Web 服务器联系,并且确定是否为所要的Java 应用
程序下载了所有的文件。
∙把适当的文件下载到本地机。
∙Java Web Start 运行下载的应用程序。
在整个安装和启动过程中,Java Web Start 与Java Web Start 应用程序管理器一起提供了一个外观和感觉一致的界面,同时还向用户提供了反馈。图 3 表示了当Java Web Start 首次试图启动一个客户机Java 应用程序时出现的窗口。
图 3. Java Web Start 下载客户机JAR 文件
Java Web Start 把一个应用程序下载到了本地机之后,客户机程序就被执行了。将来,当程序再次从Java Web Start 启动时,Java Web Start 将试图判定客户机是否有应用程序的最新版本。在此过程中,用户将可以看到一个与图 4 所示的相似的窗口。
图 4. Java Web Start 检查应用程序的版本
从用户的观点来看,该窗口提供了该Java 应用程序是在启动过程还是在更新过程的可视化反馈。另外,进度条和文本反馈不仅通知用户每个过程所需的时间,还让用户可以了解更新或启动什么时候将完成。这也许是该产品的最有用的特性之一,它可以确保在应用程序的启动过程的每一步都通知了用户正在发生什么。
图形用户界面(GUI)
应用程序管理器的GUI (图形用户界面)提供了一个简单的却合理的界面,该界面允许用户在启动应用程序时可以指定多种的选项。每次启动应用程序管理器时,出现一个闪屏,如图 5 所示。
图 5. 应用程序管理器闪屏
一旦闪屏消失,应用程序管理器的主窗口就显示出来,如图 6 所示。
图 6. 应用程序管理器的主窗口
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论