当前位置导航:炫浪网>>网络学院>>编程开发>>JAVA教程>>JAVA网络编程

使用Java web start 和 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
相关内容
赞助商链接