文档目录
一、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