文档目录
一、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
闽公网安备 35060202000074号