使用Java web start 和 JNLP技术来部署应用

发表于:2007-06-22来源:作者:点击数: 标签:
文档目录 一、Java web start技术 二、在何处查找有关Java web start 的技术 三、技术要求(桌面和 服务器 ) 四、设置Web站 五、使用自动安装特性 六、进行应用 开发 所需考虑的问题 七、打包应用便于部署 八、转换JNLP文件以使之在此发布版本下工作 九、JNLP

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

原文转自:http://www.ltesting.net