Java Web Start 是帮助客户机端应用程序开发的一个新技术,它的独特之处在于将您从关心客户机是如何启动的(从 Web 浏览器或是桌面)中解放出来。另外,该技术提供了一个使 Web 服务器能独立的分发和更新客户机代码的集合部署方案。
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 应用程序。
Java Web Start 站点: http://java.sun.com/products/javawebstart/
JNLP规范: http://java.sun.com/aboutJava/communityprocess/jsr/jsr_056_jnlp.html
一.当用户首次单击一个链接来启动一个客户端的 Java 应用程序时,发生下面的过程:
1.Web 浏览器被指示运行 Java Web Start。
2.Java Web Start 以启动闪屏开始
3.然后 Java Web Start 与指定的 Web 服务器联系,并且确定是否为所要的 Java 应用程序下载了所有的文件。
4.把适当的文件下载到本地机。
5.Java Web Start 运行下载的应用程序。
二.当选择是否为与 Java Web Start 兼容而开发应用程序时,明智的做法是对用户体验做全面考虑。
1.Java Web Start 必须安装在每台从 Web 或从 Java 应用程序管理器启动客户机 Java 应用程序的机器上。所以,虽然客户机 Java 应用程序可以从 Web 页面启动,但如果最初没有 Java Web Start 安装在本地机上的话,该应用程序本身是不能启动的;这样 Web 浏览器仅提供启动程序的方便的链接 ― 不多不少。
2.Java Web Start 仅对正确打包的并且依照 Java Web Start 指导方针的应用程序有用。另外,需要 Web 服务器,而且 Web 服务器必须正确的配置来解释 所有的JNLP 和 MIME 标记。所以,除非下载的或是从 Web 启动的所有的客户机 Java 应用程序满足了这些要求,每个客户机 Java 应用程序才能从 Java Web Start 被启动和被管理的。
3.在用户中也许有点关于 Java Web Start 和 Java 插件的应用程序与 applet 间的不同之处的困惑。用户可能理解或还不理解为什么 Java Web Start 能管理和启动许多的客户机 Java 应用程序,却不能与以 Java 插件运行的 Java Applets 建立任何连接,尽管事实是任一程序都可以从 Web 浏览器启动。
4.对于被要求去为仅仅一个客户机应用程序而下载 Java Web Start 的用户来说,可能又认为对一个客户机 Java 应用程序的执行来说,Java Web Start 应用程序管理器的特性很累赘,安装过程“麻烦”太多。
5.Java Web Start 仅能用于为 Java 2 平台编写的客户机 Java 应用程序。
6.当前,Java Web Start 可在 Windows 95/98/NT/2000、Linux 和 Solaris 操作系统上执行。
三.开发和部署 Java Web Start 的客户端 Java 应用程序时需要依照的一些简单的规则:
1.应用程序可以作为针对 Java 2 平台的独立的应用程序正常的编写。
2.如果您的应用程序需要访问本地系统,那么 JAR 文件中的每个条目都必须被签名。
3.应用程序的所有的文件必须保存在一个 JAR 文件集中,该文件集包含如图像和声音文件等资源。
4.装入资源(如图像)的任何访问都必须使用有类装载器的 getResource 方法。
四.Java Web Start 的核心:JNLP
为使 Java 应用程序能用 Java Web Start 执行,您必须为应用程序创建一个 Java 网络语言协议(Java Networking Language Protocol,JNLP)文件。JNLP 是一个为应用程序提供基本的元素和描述的 XML 文件。JNLP 文件的目的如下:
1.指定从 Web 服务器下载的 JAR 文件
2.提供其它的可能的包需要
3.指定系统属性
4.考虑到任何必要的运行时参数
5.指定使用哪个版本的 Java 2 平台
xml 代码
- <!---->xml version="1.0" encoding="UTF-8"?>
- <jnlp spec="1.0+" codebase="http://192.168.1.106:8000/jwsTest/" href="jwsTest.jnlp">
- <information>
- <title>This is my company's Java client applicationtitle>
- <vendor>Company name
- r>
- <icon href="companyLogo.gif"/>
- <homepage ref="reference/tips.html">
- <offline-allowed/>
- information>
- <resources>
- <j2se version=”1.3”/>
- <jar href="companySong.jar" part="music" download="lazy"/>
- resources>
- <resources os="Windows"/>
- <nativelibnativelib="windowIconsForWindowOS.jar" part="windowIcons" download="eager"/>
- <application-desc main-class="com.company.ui.Client"/>
- <security>
- <all-permissions/>
- security>
- jnlp>
JNLP文件的描述:
A.第一行,您可以看到文件的编码是 UTF-8 字符编码。所以,当编辑 JNLP 文件时,最终文件要用与 JDK 一起提供的 native2ascii工具转换来确保文件的编码正确。
B.jnlp codebase 属性用于在 JNLP 文件中指定所有的相关 URL。 href 属性设置(要求的)是为了让应用程序并入 Java Web Start 应用程序管理器。
C.information 标记(如 title、vendor 等)用于提供来自 Java Web Start 应用程序管理器的关于应用程序的附加信息。 homepage ref 属性是专门用于指向 Web URL 从而用户可以去提供了关于应用程序的更多的信息的 Web 页面。最有趣的 information 标记是 offline-allowed 属性;该属性决定了客户机 Java 应用程序是否能离线启动。当离线运行客户机 Java 应用程序时,Java Web Start 将继续判定来自 Web 服务器的最新的文件;在多数情况下,这个方案将引起快速的超时(因为位置被指定要离线启动),并且应用程序从本地高速缓存启动。
D.resource 标记考虑到 JNLP 文件指定应用程序使用哪些 JAR 文件和如何下载 JAR 文件;即,是急切的还是不紧不慢的。这个特性在当用户要下载大量的文件而对用户来说不是所有的文件都是客户机执行所需要的时是非常有帮助的。缺省的,多数资源是急切的下载的,在这样情况下,JAR 文件和资源在应用程序启动前被下载。不紧不慢的下载的资源只有当 Java 虚拟机(JVM)触发从应用程序载入资源或文件时才被下载。不紧不慢的下载资源的一个示例是客户机的帮助文件;考虑到了客户机的更快的启动和执行,只有在用户实际上向客户机请求帮助文件时,才会下载这些文件。然而,一旦用户请求了一个帮助文件,在请求过程中适当的 JAR 就会被下载,并伴有一个通知用户大致的下载时间的窗口。
E.JNLP 文件中最后一个有趣的标记是 security 属性。缺省的,任何从 Java Web Start 客户机启动的 Java 应用程序在一个安全的、受限制的环境执行,该环境中不允许进行本地文件访问、与其它计算机的网络连接等等。然而,对于要对客户机和网络可以完全访问的特性丰富的客户机来说, all-permissions 值是用于给予客户机完全访问的权限的。为具有对本地机的完全访问,Java 应用程序所使用和装入的所有 JAR 文件和资源必须被数字签名。
分享到:
- 2007-07-05 11:21
- 浏览 3908
- 评论(4)
- 论坛回复 / 浏览 (4 / 12653)
- 查看更多
相关推荐
"Java Web Start入门基础教程.pdf"这个文档应该会详细讲解这些内容,包括JNLP文件的结构、如何指定应用程序的主类和资源、如何设置权限,以及如何在服务器上发布和更新应用程序。 学习Java Web Start有助于开发者更...
"学会怎么用WebStart部署应用程序.doc"和"WebStart入门基础教程.doc"是两份学习资料,分别涵盖了WebStart的部署方法和基础教程,对于想要掌握WebStart技术的开发者来说,这两份文档提供了宝贵的实践指导。...
作为一本专为Java初学者打造的入门书籍,《入门学习Java For Beginners: A Simple Start To Java Programming》是一本实用的教材,旨在帮助初学者快速上手Java编程。本书系统地介绍了Java的基础语法、关键概念、数据...
JavaApplet是Java技术在早期Web开发中的一个重要应用,它允许开发者将小规模的Java程序嵌入到HTML页面中,从而实现动态交互的功能。本入门教程旨在帮助初学者理解和掌握JavaApplet的基本概念、开发环境设置以及实际...
### Java游戏编程入门知识点详解 #### 一、Java在游戏开发中的地位与潜力 随着游戏产业的迅猛发展,各种编程语言和技术不断涌现,其中C和C++因其性能优势而成为主流游戏开发语言。然而,Java作为一种后起之秀,在...
这个IBM开发网的Java3D入门教程,结合了中文和英文资源,为初学者提供了一个全面的学习路径。 首先,Java3D的核心概念包括场景图(Scene Graph)、几何对象(Geometric Objects)和变换(Transforms)。场景图是一...
Java Applet 是Java技术在早期Web开发中的一种应用方式,它允许开发者创建可以在网页中运行的小型程序。这个入门教程将带你了解Java Applet的基本概念、工作原理以及如何编写和部署。 1. **Java Applet简介** - ...
- **部署技术**:Java Web Start等技术帮助开发者部署应用程序。 - **用户界面工具箱**:Swing和Java 2D toolkits等库用于创建图形用户界面(GUI)。 - **综合库**:如JDBC、JNDI、RMI等,支持数据库连接、名称服务、...
《Spring Web Flow 入门详解》 随着Web应用的不断扩展和复杂化,管理页面流程逐渐成为了一项挑战。在大型应用中,如何清晰地定义和控制应用的导航逻辑,尤其是涉及多步骤交互过程时,成为了开发者的关注焦点。...
- 部署技术: 如 Java Web Start。 - 用户界面工具箱: Swing 和 Java 2D toolkits。 - 其他功能综合库: 如 IDL、JDBC、JNDI、RMI 等。 - **Java程序开发流程**: - 使用 `.java` 文件编写源代码。 - 通过 Java ...
综上所述,这些文档构成了一套完整的Java Web入门教程,覆盖了Servlet和JSP的基本概念、实战应用,以及与Tomcat服务器和MySQL数据库的集成。通过深入学习和实践,你将能够掌握Java Web开发的基础,为构建自己的Web...
【Java编程基础入门教程 - Applet章节概览】 在Java编程世界中,Applet是一种特殊类型的应用程序,它能够在Web浏览器环境下运行。本教程的第9章深入讲解了Applet的相关知识,旨在帮助初学者理解Applet的工作原理、...
11. **Java应用打包与部署**:了解如何使用JAR文件打包程序,以及如何通过Java Web Start或安装程序将应用部署到用户的计算机上。 12. **调试与测试**:学会使用IDE(如Eclipse或IntelliJ IDEA)中的调试工具,以及...
Java Applet是Java技术在早期Web开发中的一个重要应用,它允许开发者创建可在用户浏览器中运行的小型Java程序。这些小程序可以增强网页的功能,提供交互性,比如动态图形、动画、游戏甚至在线聊天等。本教程将带你...
本文将基于一篇关于Java多线程的学习心得文章,深入探讨Java中的多线程概念、原理及其实际应用。 #### 二、Java多线程基础 Java提供了内置的支持来简化多线程编程的过程。这主要体现在以下几个方面: 1. **语言...
Java applet是Java技术在早期Web开发中的一个重要应用,它允许开发者将小规模的Java程序嵌入到HTML页面中,从而实现动态交互的功能。在本文中,我们将深入探讨Java applet的基本概念、工作原理以及如何入门Java ...