java

位置:IT落伍者 >> java >> 浏览文章

Java Web Start 入门(一)


发布日期:2019年04月08日
 
Java Web Start 入门(一)
Java Web Start 是帮助客户机端应用程序开发的一个新技术它的独特之处在于将您从关心客户机是如何启动的(从 Web 浏览器或是桌面)中解放出来另外该技术提供了一个使 Web 服务器能独立的分发和更新客户机代码的集合部署方案

Java Web Start 是一个软件技术它包含了 applet 的可移植性Servlet 和 JavaServer Pages (JSP)的可维护性以及象 XML 和 HTML 这样的标记语言的简易性它是基于 Java 的应用程序允许从标准的 Web 服务器启动部署和更新功能完全的 Java 客户机应用程序在第一次启动 Java Web Start 时用户可以从 Web 下载新的客户机应用程序之后这些应用程序可以通过 Web 页面的链接或(Windows 中的)桌面图标或开始菜单初始化应用程序在 Java Web Start 下快速初始化被高速缓存在客户机并且可以远程的离线启动另外因为 Java Web Start 是从 Java 技术建立起来的所以它继承了 Java 平台的完整的安全性体系结构

由于 Java Web Start 自身是一个 Java 应用程序所以该软件是平台独立的并且支持 Java 平台的任何客户机系统都支持该软件当客户机应用程序启动时Java Web Start 自动执行更新在从原来的高速缓存(倘若存在高速缓存)装入应用程序的同时从 Web 下载最新的代码Java Web Start 还提供了一个 Java 应用程序管理器(Java Application Manager)实用程序既提供了多种选项如清除下载的应用程序的高速缓存指定多种 JRE 的使用设置 HTTP 代理还允许最终用户组织他们的 Java 应用程序

Java Web Start 站点

JNLP规范 l

当用户首次单击一个链接来启动一个客户端的 Java 应用程序时发生下面的过程

Web 浏览器被指示运行 Java Web Start

Java Web Start 以启动闪屏开始

然后 Java Web Start 与指定的 Web 服务器联系并且确定是否为所要的 Java 应用程序下载了所有的文件

把适当的文件下载到本地机

Java Web Start 运行下载的应用程序

当选择是否为与 Java Web Start 兼容而开发应用程序时明智的做法是对用户体验做全面考虑

Java Web Start 必须安装在每台从 Web 或从 Java 应用程序管理器启动客户机 Java 应用程序的机器上所以虽然客户机 Java 应用程序可以从 Web 页面启动但如果最初没有 Java Web Start 安装在本地机上的话该应用程序本身是不能启动的这样 Web 浏览器仅提供启动程序的方便的链接 ― 不多不少

Java Web Start 仅对正确打包的并且依照 Java Web Start 指导方针的应用程序有用另外需要 Web 服务器而且 Web 服务器必须正确的配置来解释 所有的JNLP 和 MIME 标记所以除非下载的或是从 Web 启动的所有的客户机 Java 应用程序满足了这些要求每个客户机 Java 应用程序才能从 Java Web Start 被启动和被管理的

在用户中也许有点关于 Java Web Start 和 Java 插件的应用程序与 applet 间的不同之处的困惑用户可能理解或还不理解为什么 Java Web Start 能管理和启动许多的客户机 Java 应用程序却不能与以 Java 插件运行的 Java Applets 建立任何连接尽管事实是任一程序都可以从 Web 浏览器启动

对于被要求去为仅仅一个客户机应用程序而下载 Java Web Start 的用户来说可能又认为对一个客户机 Java 应用程序的执行来说Java Web Start 应用程序管理器的特性很累赘安装过程麻烦太多

Java Web Start 仅能用于为 Java 平台编写的客户机 Java 应用程序

当前Java Web Start 可在 Windows //NT/Linux 和 Solaris 操作系统上执行

开发和部署 Java Web Start 的客户端 Java 应用程序时需要依照的一些简单的规则

应用程序可以作为针对 Java 平台的独立的应用程序正常的编写

如果您的应用程序需要访问本地系统那么 JAR 文件中的每个条目都必须被签名

应用程序的所有的文件必须保存在一个 JAR 文件集中该文件集包含如图像和声音文件等资源

装入资源(如图像)的任何访问都必须使用有类装载器的 getResource 方法

Java Web Start 的核心JNLP

为使 Java 应用程序能用 Java Web Start 执行您必须为应用程序创建一个 Java 网络语言协议(Java Networking Language ProtocolJNLP)文件JNLP 是一个为应用程序提供基本的元素和描述的 XML 文件JNLP 文件的目的如下

指定从 Web 服务器下载的 JAR 文件

提供其它的可能的包需要

指定系统属性

考虑到任何必要的运行时参数

指定使用哪个版本的 Java 平台

xml 代码

<!>xml version= encoding=UTF?>

<jnlp spec=+ codebase= >

<information>

<title>This is my companys Java client applicationtitle>

<vendor>Company name

r>

<icon />

<homepage ref=reference/l>

<offlineallowed/>

information>

<resources>

<jse version=/>

<jar part=music download=lazy/>

resources>

<resources os=Windows/>

<nativelibnativelib=windowIconsForWindowOSjar part=windowIcons download=eager/>

<applicationdesc mainclass=panyuiClient/>

<security>

<allpermissions/>

security>

jnlp>

JNLP文件的描述

A第一行您可以看到文件的编码是 UTF 字符编码所以当编辑 JNLP 文件时最终文件要用与 JDK 一起提供的 nativeascii工具转换来确保文件的编码正确

Bjnlp codebase 属性用于在 JNLP 文件中指定所有的相关 URL href 属性设置(要求的)是为了让应用程序并入 Java Web Start 应用程序管理器

rmation 标记(如 titlevendor 等)用于提供来自 Java Web Start 应用程序管理器的关于应用程序的附加信息 homepage ref 属性是专门用于指向 Web URL 从而用户可以去提供了关于应用程序的更多的信息的 Web 页面最有趣的 information 标记是 offlineallowed 属性该属性决定了客户机 Java 应用程序是否能离线启动当离线运行客户机 Java 应用程序时Java Web Start 将继续判定来自 Web 服务器的最新的文件在多数情况下这个方案将引起快速的超时(因为位置被指定要离线启动)并且应用程序从本地高速缓存启动

Dresource 标记考虑到 JNLP 文件指定应用程序使用哪些 JAR 文件和如何下载 JAR 文件是急切的还是不紧不慢的这个特性在当用户要下载大量的文件而对用户来说不是所有的文件都是客户机执行所需要的时是非常有帮助的缺省的多数资源是急切的下载的在这样情况下JAR 文件和资源在应用程序启动前被下载不紧不慢的下载的资源只有当 Java 虚拟机(JVM)触发从应用程序载入资源或文件时才被下载不紧不慢的下载资源的一个示例是客户机的帮助文件考虑到了客户机的更快的启动和执行只有在用户实际上向客户机请求帮助文件时才会下载这些文件然而一旦用户请求了一个帮助文件在请求过程中适当的 JAR 就会被下载并伴有一个通知用户大致的下载时间的窗口

EJNLP 文件中最后一个有趣的标记是 security 属性缺省的任何从 Java Web Start 客户机启动的 Java 应用程序在一个安全的受限制的环境执行该环境中不允许进行本地文件访问与其它计算机的网络连接等等然而对于要对客户机和网络可以完全访问的特性丰富的客户机来说 allpermissions 值是用于给予客户机完全访问的权限的为具有对本地机的完全访问Java 应用程序所使用和装入的所有 JAR 文件和资源必须被数字签名

上一篇:Java 继承的一个实例

下一篇:Java 3D的动画展示图(Part1-使用JMF)