|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,web|程序
媒介:
关于JWS
JWS是作为JSR-56的一部分而创立的,目标是供应一种办法来分发在客户端上的JVM中运转的Java使用程序。JWS包含以下特性:
部署
运转JWS使用程序包含选择HTML链接,与翻开新的页面没有甚么区分,唯一的分歧的地方在于Web服务器页面是.jnlp文件,该文件启动JWS插件来在客户端上当地下载和实行使用程序。
缓存
一旦使用程序下载终了,就能够把它缓存在客户端电脑上。每当使用程序从头启动时,JWS就反省服务器,检察是不是有更新的版本要下载。假如没有,就运转当地的版本,从而制止再次下载。假如存在一个新的版本,就主动检索新的版本,因而办理员历来就不用忧虑旧的客户端毗连到已更新的服务器程序API上。
自力于扫瞄器JRE
JWS同意您准确地指定您想在甚么客户端JRE级别中运转它(自力于扫瞄器是怎样设置的)。这一特性制止了Applet标志和扫瞄器JRE级其余成绩(好比用MicrosoftInternetExplorer)。与Applet标志共享单一的用于扫瞄器的JVM实例分歧,每一个JWS使用程序都有本人自力的JVM,并经由过程它本人的main(String[]args)办法启动。
平安性考证
Java平安性模子用于考证JWS使用程序的来历并限定对易受打击的体系服务(好比I/O和通讯)的会见。必需经由过程认证已签订的JAR文件来授与每一个JWS程序显式会见这些服务的权限。
桌面集成
一旦JWS使用程序从.jnlp文件下载终了,就能够把它集成在桌面上作为自力的图标。如许该使用程序就能够从头启动而不必经由过程Web扫瞄器。
假如您有JRE1.4.1或更新的版本,那末您已安装了JavaWebStart。假如您没有JRE1.4.1或更新的版本,能够从Sun下载页面下载并安装JRE。
与先容GUI编程的新办法的文章的传一致样,第一步是创立Web启动使用程序,它显现带有“HelloWorld”的对话框:这分两步举行:起首创立类并将其部署在Web服务器中,接着客户端团体盘算机会见该URL,如许就能够经由过程JWS下载和挪用它。
Sun供应了一个完成JNLP的称为JavaWebStart(JWS)的参考完成。让我们利用它开辟一个利用JFCSwing的复杂使用。为了做这个,你必要从http://java.sun.com/products/javawebstart下载JWS。(译者注:JDK的新版本JDK1.4已内置JWS,不必别的下载。)
操纵步骤:
一.一样平常的使用公布
1)创立要公布的使用程序;
创立例子文件HelloJNLP.java文件
//------------------------------------------------------
/*
*Createdon2004-11-10
*
*TODOTochangethetemplateforthisgeneratedfilegoto
*Window-Preferences-Java-CodeStyle-CodeTemplates
*/
/**
*@authorJackey
*
*TODOTochangethetemplateforthisgeneratedtypecommentgotoWindow-
*Preferences-Java-CodeStyle-CodeTemplates
*/
//FileHelloJNLP.java
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
publicclassHelloJNLPextendsJFrame{
publicHelloJNLP(){
super("HelloJNLP");
StringloadedFrom=this.getClass().getClassLoader().toString();
JLabeljl=newJLabel("loadedby"+loadedFrom);
JEditorPanejtp=newJEditorPane("text/plain","Editthistext");
try{
jtp.setPage("http://127.0.0.1:8080/");
}catch(Exceptione){
//TODO:handleexception
System.err.println("Error:"+e.getMessage());
}
getContentPane().add(jl,BorderLayout.NORTH);
getContentPane().add(jtp,BorderLayout.CENTER);
}
publicstaticvoidmain(String[]args){
JFramef=newHelloJNLP();
f.setBounds(100,100,325,250);
f.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
f.setVisible(true);
f.addWindowListener(newWindowAdapter(){
publicvoidwindowClosed(WindowEvente){
System.out.println("Shuttingdown...");
System.exit(0);
}
});
}
}
//------------------------------------------------------
2)编译和打包成.jar文件;
d:>javacHelloJNLP.java
D:eclipseworkspacejnlpin的目次
2004-11-1009:49<DIR>.
2004-11-1009:49<DIR>..
2004-11-1014:491,889HelloJNLP.class
2004-11-1014:49651HelloJNLP$1.class
2004-11-1012:572,091HelloJNLP.jar
2004-11-1010:32422HelloJNLP.jnlp
2004-11-1013:53178index.html
2004-11-1014:451,211joestore
2004-11-1014:463,403sHelloJNLP.jar
7个文件9,845字节
2个目次3,277,553,664可用字节
D:eclipseworkspacejnlpin>jarcvfHelloJNLP.jar*.class
标明清单(manifest)
增添:HelloJNLP$1.class(读进=651)(写出=422)(紧缩了35%)
增添:HelloJNLP.class(读进=1889)(写出=1079)(紧缩了42%)
3)宣布使用到webserver上
将天生的HelloJNLP.jar文件copy到Tomcat的webapp目次之下.
4)创立.jnlp文件;
利用文本编纂器来编纂一下内容.保留HelloJNLP.jnlp文件
<?xmlversion="1.0"encoding="UTF-8"?>
<!--fileHello.jnlp-->
<jnlpcodebase="http://127.0.0.1:8080/"href="HelloJNLP.jnlp">
<information>
<title>Hellojackey</title>
<vendor>jackeyjiaoSampleMay2004</vendor>
<iconhref=http://www.163design.net/j/e/"photo1.JPG"/>
</information>
<resources>
<j2seversion="1.2+"/>
<jarhref="sHelloJNLP.jar"/>
</resources>
<application-descmain-class="HelloJNLP"/>
</jnlp>
5)编纂html页面
保留为index.html文件.
<!doctypehtmlpublic"-//W3C//DTDHTML4.0Transitional//EN">
<html>
<head>
<title>NewDocument</title>
<metaname="Generator"content="EditPlus">
<metaname="Author"content="">
<metaname="Keywords"content="">
<metaname="Description"content="">
</head>
<body>
<ul>
<li><ahref="HelloJNLP.jnlp">HelloJNLP</a>
<li><ahref="ShowDSB.jnlp">ShowDSB</a>
</ul>
</body>
</html>
6)启动javawebstart
在javawebstart使用程序办理器的地点里输出我们的webapplicatoin公布的地点
http://127.0.0.1:8080/index.html
运转乐成!
二.有会见内部资本的使用公布
平安性:
一些JWS使用程序大概但愿会见客户端团体盘算机上的服务,好比用于读取和写进文件或翻开套接字
并举行毗连的IO。为了平安性的目标,您不想歹意程序无穷制地会见您的团体盘算机上的这些工具,为此,
JWS利用Java平安性模子和JAR文件认证。在缺省情形下,JWS假造机是一个受限的沙箱(Sandbox),
它回绝对这些服务的会见。假如您试图超越平安性办理器的允许,好比实行一些文件IO,就会发生一个非常。
操纵的步骤:
1)修正.jnlp文件
<?xmlversion="1.0"encoding="UTF-8"?>
<!--fileHello.jnlp-->
<jnlpcodebase="http://127.0.0.1:8080/"href="HelloJNLP.jnlp">
<information>
<title>Hellojackey</title>
<vendor>jackeyjiaoSampleMay2004</vendor>
<iconhref=http://www.163design.net/j/e/"photo1.JPG"/>
</information>
<security>
<all-permissions/><!--到场平安权限-->
</security>
<resources>
<j2seversion="1.2+"/>
<jarhref="sHelloJNLP.jar"/><!--修正此处-->
</resources>
<application-descmain-class="HelloJNLP"/>
</jnlp>
2)创立签订的.jar文件
为了签订JAR文件,您可使用JDK附带的keytool命令,即便您将把您的
JWS使用程序放在完全的产物中,也仍是保举您从像Thawte或VeriSign如许的布局取得认证。
D:eclipseworkspacejnlpin>keytool-genkey-aliashelloAlias-keypasswsddjws
-keystorejoestore-storepassrichjavaclient
您的名字与姓氏是甚么?
[Unknown]:Jackey
您的构造单元称号是甚么?
[Unknown]:wbx
您的构造称号是甚么?
[Unknown]:china
您地点的乡村或地区称号是甚么?
[Unknown]:hz
您地点的州或省分称号是甚么?
[Unknown]:zj
该单元的两字母国度代码是甚么
[Unknown]:cn
CN=Jackey,OU=wbx,O=china,L=hz,ST=zj,C=cn准确吗?
[否]:y
D:eclipseworkspacejnlpin>
D:eclipseworkspacejnlpin>jarsigner-keystorejoestore-signedjarsHelloJNL
P.jarHelloJNLP.jarhelloAlias
EnterPassphraseforkeystore:richjavaclient
EnterkeypasswordforhelloAlias:wsddjws
D:eclipseworkspacejnlpin>
3)公布新的使用
copyindex.html和sHelloJNLP.jnlp文件我Tomcat上面.
运转的情形如图.
停止语
本文展现了能够怎样利用JavaWebStart来分发WebSphere中丰厚的Java使用程序,以便它们运转在客户端团体盘算机上。经由过程利用.jnlp文件来指定关于使用程序的信息能够做到这一点。本文还展现了怎样在客户端团体盘算机上缓存这些使用程序和能够怎样以桌面快速体例的情势安装它们。当使用程序必要更新时,它是在服务器上的一个独自的地位举行变动的,因此一切的客户端都能够依据.jnlp文件的日期和工夫戳在它们下一次毗连时猎取新的正本。别的,本文展现了能够怎样用JnlpDownloadServet来软复制jnlp文件的代码库和怎样供应显式的日期和工夫戳,从而同意.jnlp文件在散布式情况中的WebSphere的多个正本之间复制,而同时作为单个程序界说呈现在客户端中。我们但愿您会发明JWS是一种壮大而天真的办理丰厚的实践Java客户端使用程序的工具.
在1995年5月23日以“Java”的名称正式发布了。 |
|