您的位置:首页 > 编程语言 > Java开发

[原创]初识JavaWebStart(JWS)--献给我亲爱的父母

2005-06-30 15:09 495 查看
作者:bluesky35(蓝天)
最近一直很忙,每天工作忙到很晚,身心疲惫,不过还是在百忙之中抽出点时间写一些技术短文,虽然最近一直在做C#.NET的项目,但对JAVA还是很照顾的,一直在不断的学习,希望能借文章和网友们交流一下经验.好了,转入正题吧,下面要说的是JavaWebStart(JWS),服务器更新程序,客户端下载执行的技术,一方更新,多方受益.大家和我一起来感受一下吧,呵呵.
环境配置:WindowsXP,JDK1.4.2,Eclipse2.1,Tomcat4.1.27
一.编写代码
首先我们写一段简单的程序,打开Eclipse2.1,建立名为JavaWebStart的project,然后写一个简单的main函数,加上一段程序(程序的作用是在C盘根目录建立名为Test的文本文件,并填上"bluesky"字样的内容),程序代码如下:
import java.io.*;
/**
* @author bluesky35
*/
public class WebStartMain {
public static void main(String args[]) throws FileNotFoundException{
String filename = "c://Test.txt";
FileOutputStream fileOut = new FileOutputStream(filename);
byte text[] = {'b','l','u','e','s','k','y'};

try {
fileOut.write(text);
fileOut.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

二.打包程序
为了发布,我们将编译生成的两进制文件打包成jar以便传输,使用jar命令进行打包,jar -cvf JavaWebStart.jar WebStartMain.class,执行以上命令后我们就可以在class目录下看到JavaWebStart.jar文件了.如图所示:



三.定义配置文件
将以上生成的jar文件copy到project根目录.为了发布,我们定义名为JavaWebStart.jnlp的配置文件,放在根目录的JnlpHome目录下,JavaWebStart.jnlp文件的内容如下:
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+" codebase="http://172.28.122.126:8080/JavaWebStart/JnlpHome" href="JavaWebStart.jnlp">
<information>
<title>JavaWebStart</title>
<vendor>JavaWebStart project</vendor>
<homepage href="JavaWebStart.html" />
</information>
<security>
<all-permissions/>
</security>
<resources>
<j2se version="1.3+" />
<jar href="../JavaWebStart.jar" />
</resources>
<application-desc main-class="WebStartMain" />
</jnlp>
注:172.28.122.126是我本地局域网的IP地址
四.编写主页面html文件
我们使用一个html文件调用jnlp文件,html文件放在根目录,内容如下:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>JavaWebStart</title>
</head>
<body>
<h1>JavaWebStart</h1>
<ul>
<li><a href="http://172.28.122.126:8080/JavaWebStart/JnlpHome/JavaWebStart.jnlp">JavaWebStart</a>
</ul>
</body>
</html>
注:172.28.122.126是我本地局域网的IP地址
好了,代码编写过程到这里结束了,让我们来看一下整个project的目录结构



五.数字签名
由于客户端下载服务器端的更新程序运行时,有安全性问题,为了避免恶意攻击,想拥有JNLP文件中<all-permissions/>的设置,我们必须对jar文件做数字签名,过程如下:
(1)生成名为JavaWebStart.store的密钥库,别名为JavaWebStart
keytool -genkey -keystore JavaWebStart.store -alias JavaWebStart
密码:(根据需要自己输入)
以下信息根据需要自己输入,最后确认:y (如下图所示)



(2)导出JavaWebStart.cer数字证书
keytool -export -keystore JavaWebStart.store -alias JavaWebStart -file JavaWebStart.cer
密码:(根据需要自己输入)
导出的证书如下图所示:



(3)对jar文件进行数字签名
jarsigner -keystore JavaWebStart.store JavaWebStart.jar JavaWebStart
密码:(根据需要自己输入)
六.运行结果
好了,最后让我们来运行一下程序,看看结果吧,将JavaWebStart.jar copy到project根目录,启动Tomcat服务,在IE里输入http://172.28.122.126:8080/JavaWebStart/JavaWebStart.html,出现如下图所示的画面



点击JavaWebStart的连接,出现最新版本的确认:



然后会出现数字签名的确认提示:



按开始后大家就可以在C盘根目录看到Test.txt文件了,里面有我的英文名字,呵呵
好了,大家试试吧.最后,祝福我爸爸妈妈身体健康.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: