文档目录 一、java web start技术 二、在何处查找有关Java web start 的技术 三、技术要求(桌面和服务器) 四、设置Web站 五、使用自动安装特性 六、进行应用开发所需考虑的问题 七、打包应用便于部署 八、转换JNLP文件以使之在此发布版本下工作 九、JNLP文件语法 十、JNLP API 示例 十一、JNLP API (Java文档)
一、Java web start技术
Java web start是一个与Web浏览器相关的应用。当用户点击指向一个特定启动文件(JNLP文件)的超级连接时,将促使Web浏览器启动Java Web Start,Java Web Start将自动下载、缓存以及运行给定基于Java技术的应用。这整个过程除了最初的点击以外,将不需要任何的用户干预。 从技术的角度来看,Java Web Start技术有多种要害优点,使之成为进行应用部署的平台。 1.Java Web Start技术是专门用来启动J2SE(Java 2 SE platform)开发的应用。但个应用可以在一个Web服务器上开发,并且能配置在其他各种 平台上,包括Windows 98/NT/2000/ME/XP, linux, Solaris操作系统环境。Java平台已经被证实是极具鲁棒性,高效,多用途的开发平台,通 过最少化开发和测试成本来节省成本。 2.Java Web Start支持J2SE(Java 2 platform, Standard Edition)的多个修正版本。这样的话,使得一个应用可以请求它所需平台的特定版本 ,例如J2SETM 1.4.0。多个应用可以同时运行不同平台版本下,而不会引起冲突,假如一个应用需要客户机系统上没有安装的平台版本的话, Java Web Start能够自动下载并安装相应平台版本。 3.Java Web Start答应在浏览器环境之外启动应用。假如不方便或者不可能通过浏览器启动的条件下,能够对应用进行离线运行。应用程序也 能够通过桌面快捷方式来启动,这样将使得启动一个基于Web部署的应用程序象启动本地应用程序一样简单。 4.Java Web Start继续了Java平台的安全性的优点。Java Web Start技术下的应用在缺省情况下,将在一个保护环境下运行(即沙箱sandbox), 严格限制了对本地磁盘系统和网络资源的访问。这将答应用户安全地运行来源于不可信区域的应用程序,而不用担心会破坏本地安全环境。 5.用Java Web Start启动的应用程序将缓存在本地。这样的话,使得一个已经下载的应用程序等同于传统意义上的已安装应用程序。 Java Web Start的支持技术是Java TM Network Launching PRotocol & API (JNLP)-Java网络启动协议。此技术当前是通过Java Community Process (JCP)进行开发的。Java Web Start 是JNLP规范的参考实现(reference implementation,RI)。JNLP技术其中一点定义了描述怎样通过 呼叫一个JNLP文件来启动一个应用程序的一个标准文件格式。
二、在何处查找Java Web Start
Java Web Start 站点http://java.sun.com/prodUCts/javawebstart/, 此处可以下载Java Web Start。JNLP规范在这里可以找到: http://java.sun.com/aboutJava/communityprocess/jsr/jsr_056_jnlp.Html
三、技术要求
1.桌面/客户端要求 客户机要求支持Java运行时环境the Java Runtime Environment (JRE)1.2.2或者更高版本。 Java Web Start 适用于 Windows 98/NT/2000/ME/XP, Solaris操作系统环境和 Linux. 具体情况参考readme文档http://java.sun.com/products/javawebstart/1.2/docs/readme.html 2.服务器要求 Java Web Start应用程序可以部署在标准的web服务器上。为了使用Java Web Start,Web服务器必须配置为支持一种下面将解释的新MIME类型。
四、设置Web站点
Java Web Start 充分利用了已经存在的Internet技术,例如HTTP协议和Web服务器,这使得已存在的 用于部署基于HTML内容的基础ā系统能够重用来使用Java Web Start部署基于Java技术的应用程序。 为了在客户机上部署你的应用,你必须确保包含应用程序的所有文件能够通过Web服务器进行访问。 这意味着你必须拷贝一个或者多个与JNLP文件相一致的jar文件到你的Web服务器目录中。使Web站点 支持Java Web Start的设置类似于部署基于HTML的内容文件。唯一需要注重的是为Web服务器呗指一 种新的MIME类型。 1、配置Web服务器使之使用Java Web Start MIME类型 配置Web服务器,使所有的以.jnlp为扩展名的文件设置为application/x-java-jnlp-file MIME 类型 。 多数Web浏览器根据从Web服务器返回内容的MIME类型来决定怎样去处理特定的内容。为了让Web浏览 器调用Java Web Start,必须让服务器对jnlp文件返回application/x-java-jnlp-file MIME 类型。 每个Web服务器都有增加MIME类型的方法。对于Apache Web 服务器,必须增加以下行到.mime.types 配置文件中: application/x-java-jnlp-file JNLP 对于器她服务器,请核对相关文档。 2、给应用程序建立一个JNLP文件 建立JNLP文件的简便方法是根据你的要求修改已经存在的JNLP文件。 在后面相关部分将会谈到JNLP文件的语法与格式。 3、确保应用程序能够通过Web服务器进行访问 确保你的应用程序的JAR文件和JNLP文件能够用JNLP文件中列出的URL进行访问。 4、在网页上建立一个指向JNLP文件的超级连接。 指向JNLP文件的超级连接是一个标准的HTML连接。例如: <a href="MyApp.jnlp">Launch My Application</a> 按照第一步中的设置所述,Web服务器将对所有以.jnlp为扩展名的任何文件自动返回 application/x-java-jnlp-file MIME 类型。这是确保Web浏览器在下载此文件的时候启动Java Web Start的前提条件。 还应该在网页上提供一个Java Web Start安装程序的链接,这样将使那些还没有安装Java Web Start 的用户能够下载和安装Java Web Start。 对Java Web Start是否安装的检测: 在HTML页面中使用javascript/VBScript可以检测Java Web Start是否安装。示例如下: <SCRIPT LANGUAGE="javascript"> <!-- insertLink("http://www.mycompany.com/my-app.jnlp", "My Application"); // --> </SCRIPT> 注重这里的Javascript脚本不能对Gecko-based的浏览器(例如:Netscape 6.x)是否安装Java Web Start进行检测。 insertLink方法检测Java Web Start是否安装。假如已经安装的话,此方法输出的HTML将类似于: <a href="http://www.mycompany.com/my-app.jnlp">My Application</a> 假如没有安装的话将输出: Need to install Java Web Start 在实际使用中,这应该是指向一个下载页面的链接。 示例javascript/VBScript如下: <!---- This initializes the navigator.family object ----> <SCRIPT LANGUAGE="javascript" SRC="xbDetectBrowser.js"> </SCRIPT>
<SCRIPT LANGUAGE="javascript"> var javawsInstalled = 0; isIE = "false"; if (navigator.mimeTypes && navigator.mimeTypes.length) { x = navigator.mimeTypes['application/x-java-jnlp-file']; if (x) javawsInstalled = 1; } else { isIE = "true"; } function insertLink(url, name) { <!-- Developers should be aware that for Gecko-based browsersā (NS 6.x) --> <!-- Java Web Start might not be installed ------------------------------> if (javawsInstalled navigator.family == 'gecko') { document.write("<a href=" + url + ">" + name + "</a>"); } else { document.write("Need to install Java Web Start"); } } </SCRIPT> <SCRIPT LANGUAGE="VBScript"> on error resume next If isIE = "true" Then If Not(IsObject(CreateObject("JavaWebStart.IsInstalled"))) Then javawsInstalled = 0 Else javawsInstalled = 1 End If End If </SCRIPT> 以上的示例脚本调用浏览器检测脚本xbDetectBrowser.js。xbDetectBrowser.js的内容如下: /* ***** BEGIN LICENSE BLOCK ***** * Licensed under Version: MPL 1.1/GPL 2.0/LGPL 2.1 * Full Terms at http://devedge.netscape.com/lib/js/license/mpl-tri-license.txt * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Netscape code. * * The Initial Developer of the Original Code is * Netscape Corporation. * Portions created by the Initial Developer are Copyright (C) 2001 * the Initial Developer. All Rights Reserved. * * Contributor(s): Bob Clary * * ***** END LICENSE BLOCK ***** */ function x