Java网络加载协议(JNLP)及Java Web Start

王朝java/jsp·作者佚名  2008-05-31
宽屏版  字体: |||超大  

原文:http://Java.sun.com/jdc/JDCTechTips/2001/tt0530.Html

在java开发的早期,重点被放在了客户端开发。语言中对于applet和安全下载的支持

对于万维网(WWW)的发布看上去是个不错的主意。但是现实是java最大的成功在于服务器端,java的强大功能和适应性赢得了服务器端开发者的心。同时,客户端的开发落后了。棘手的开发问题限制了applet的效用,开发者被迫转向基于浏览器的瘦客户端。

Java Network Launching Protocol (JNLP,java网络加载协议) 承诺改变这个现状。通过JCP(Java Community Process)的JSR-56的开发,

JNLP解决了很多先前用java开发针对客户端的功能的问题。一个JNLP客户端是一个应用程序或者说服务,它可以从宿主于网络的资源中加载应用程序。假如你使用JNLP打包一个应用程序,那么一个JNLP客户端能够:

o 为该应用探测,安装并且使用正确版本的JRE(java运行时环境)

o 从浏览器或者桌面加载应用程序

o 当新版本的应用出现时自动下载最新的版本。

o 为了加速启动速度在本机缓存应用程序需要的类

o 可以作为applet或者应用程序运行

o 在必要的情况下下载原始的库

o 以安全的方式使用诸如文件系统这样的本机资源

o 自动定位和加载外部依靠资源

Sun 提供了一个实现JNLP的称为Java Web Start(JWS)的参考实现。让我们使用它开发一个使用JFC Swing的简单应用。为了做这个,你需要从http://java.sun.com/prodUCts/javawebstart下载JWS。(译者注:JDK的新版本JDK1.4已经内置JWS,无须另外下载。)

下面是应用程序的代码:

//File HelloJNLP.java

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class HelloJNLP extends JFrame {

public HelloJNLP() {

super("Hello JNLP");

String loadedFrom = this.getClass().getClassLoader().toString();

JLabel jl = new JLabel("loaded by " + loadedFrom);

JEditorPane jtp = new JEditorPane("text/plain",

"Edit this text");

getContentPane().add(jl, BorderLayout.NORTH);

getContentPane().add(jtp, BorderLayout.CENTER);

}

public static void main(String [] args) {

JFrame f = new HelloJNLP();

f.setBounds(100,100,325,250);

f.setDefaultCloseOperation(DISPOSE_ON_CLOSE);

f.setVisible(true);

f.addWindowListener(new WindowAdapter() {

public void windowClosed(WindowEvent e) {

System.out.println("Shutting down...");

System.exit(0);

}

});

}

}

JNLP的核心是一个发布清单(deployment manifest)。它是一个使用.jnlp做

扩展名的XML文件(JNLP规范简单的称之为"JNLP 文件")。要发布HelloJNLP,你需要在JNLP文件中描述它,就像下面这样:

href="http://staff.develop.com/halloway/TechTips/May2001/Hello.jnlp">

Tech Tips Sample May 2001

这个清单包含客户端需要下载和使用HelloJNLP的所有信息:

o jnlp元素的codebase属性指出搜索应用程序资源的顶级URL。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有