Java Web Start(以下簡稱JWS)是SUN提供的一種通過Web來部署和發布Java 程序的新技術,它既可以用來發布Application,也可以用來發布Applet,它獲去年全球Java技術最佳創意獎。它僅在第一次運行時下載程序,以后的事情,就全全交給JWS,包括版本的自動更新和維護。這是我們曾經夢寐以求的事情,程序運行在客戶端(本地運行,當然有足夠的速度),但不用去安裝配置客戶端,也不用去考慮版本升級后對客戶端的維護,這就是JWS提供給我們的好處之一。OK,下面我們就來看看如何玩轉JWS,本文僅用發布Application來做說明。
系統環境:Win2000Professional+Tomcat3.2.1+JDK1.3。
一:JWS簡介
JWS主要用來通過網絡部署你的應用程序,它具有安全、穩定、易維護、易使用的特點。用戶訪問用JWS部署應用程序的站點,下載發布的應用程序,既可以在線運行,也可以通過JWS的客戶端離線運行已下載的應用程序。對同一個應用程序,在第一次運行時下載,以后每次運行時,JWS的客戶端會自動去探測是否有版本更新,有更新就自動下載新版本,沒有更新就直接運行本地當前版本,所有的麻煩全由JWS去承擔。好,下面我們就一步一步來搭建JWS
二:搭建支持JWS的Web站點
第一步:你的Tomcat3.2.1已經正常運轉
第二步:找到TomcatHOME/conf下的web.xml文件,在其中添加<mime-type>
application/x-java-jnlp-file
</mime-type>
以支持JNLP文件。
三:部署應用程序
第一步:開發你希望發布的應用程序
第二步:把應用程序及所用到的所有資源打成一個或多個jar包
第三步:如果你的應用程序不會用到任何運行這個應用程序的機器的本地資源,那么,你的應用程序就可以部署了。
第四步:如果你的應用程序用到了運行這個應用程序的機器的本地資源,那么,你的應用程序就必須先簽名然后才可以發布。
第五步:如何給應用程序簽名
1:首先確保你已經完全安裝了Java2的環境,有keytool工具,它位于J2SE%@page contentType="text/html;charset=gb2312"%>
<html>
<title>JWS Test</title>
<head>
<SCRIPT LANGUAGE="Javascript">
function insertLink(url, name) {
document.write("<a href=" + url + ">" + name + "</a><br><br>");
}
insertLink("http://你的IP:8080/ JWSTest /apps/JWSTest.jnlp"," JWSTest ");
</SCRIPT>
</head>
<body>
</body>
</html>
第二步:在jsp中添加檢測訪問的客戶端是否已經安裝了JWS的客戶端的代碼,示例如下:
<%@page contentType="text/html;charset=gb2312"%>
<html>
<title> JWS Test </title>
<head>
<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) {
if (javawsInstalled) {
document.write("<a href=" + url + ">" + name + "</a><br><br>");
} else {
document.write("<a href=" + url + ">"+ name +"</a><br><br>");
}
}
</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>
<SCRIPT LANGUAGE="Javascript">
if(javawsInstalled){
insertLink("http://你的IP:8080/ JWSTest /apps/JWSTest.jnlp"," JWSTest ");
}else{
//通知用戶要先安裝JWS的客戶端,你可以自己提供下載或是直接鏈接到Sun的JWS下載。
//分為兩種,如果客戶端已經安裝了Java運行環境,則只要下載javaws-1_0_1_01-win-int.exe即可。
//如果客戶端沒有安裝Java運行環境,則要下載完整的javaws-1_0_1_01-win-int-rt.exe。
}
</SCRIPT>
</head>
<body>
</body>
</html>
五:JNLP文件
第一步:下面我們來編寫JWS的核心配置文件JNLP,有了它,才能將以上各部分聯系起來,真正讓JWS運轉起來。JNLP文件符合標準的XML語法,實質就是一個XML文件。當然,編寫它的最好方式是對已寫好的JNLP進行改寫。JWSTest.jnlp示例如下:
<?xml version="1.0" encoding="utf-8"?>
<!-- JNLP File for SwingSet2 Demo Application -->
<jnlp
spec="1.0+"
codebase="http://你的IP:8080/JWSTest/apps"
href=" JWSTest.jnlp">
<information>
<title> JWS Test </title>
<vendor>YOUR Name</vendor>
<homepage href=" JWSTest.html"/>
<description> JWS Test </description>
<icon href="images/ JWSTest.jpg"/>
<offline-allowed/>
</information>
<security>
<all-permissions/>
</security>
<resources>
<j2se version="1.3"/>
<jar href="lib/ JWSTest.jar"/>
</resources>
<application-desc main-class="運行啟動的主類"/>
</jnlp>
第二步:部分JNLP的關鍵語法
<jnlp>元素
spec:必須是1.0及以上版本,這里用1.0+,不需修改。
codebase:資源的URL,是JNLP指向各連接的起始處,需自行修改。
Href:JNLP文件相對codebase的存放位置,和JNLP文件的全名,需自行修改。
<infomation>元素
Title:發布的應用程序簡單標題,需自行修改。
Vendor:發行商信息,可以寫上你的
系統環境:Win2000Professional+Tomcat3.2.1+JDK1.3。
一:JWS簡介
JWS主要用來通過網絡部署你的應用程序,它具有安全、穩定、易維護、易使用的特點。用戶訪問用JWS部署應用程序的站點,下載發布的應用程序,既可以在線運行,也可以通過JWS的客戶端離線運行已下載的應用程序。對同一個應用程序,在第一次運行時下載,以后每次運行時,JWS的客戶端會自動去探測是否有版本更新,有更新就自動下載新版本,沒有更新就直接運行本地當前版本,所有的麻煩全由JWS去承擔。好,下面我們就一步一步來搭建JWS
二:搭建支持JWS的Web站點
第一步:你的Tomcat3.2.1已經正常運轉
第二步:找到TomcatHOME/conf下的web.xml文件,在其中添加<mime-type>
application/x-java-jnlp-file
</mime-type>
以支持JNLP文件。
三:部署應用程序
第一步:開發你希望發布的應用程序
第二步:把應用程序及所用到的所有資源打成一個或多個jar包
第三步:如果你的應用程序不會用到任何運行這個應用程序的機器的本地資源,那么,你的應用程序就可以部署了。
第四步:如果你的應用程序用到了運行這個應用程序的機器的本地資源,那么,你的應用程序就必須先簽名然后才可以發布。
第五步:如何給應用程序簽名
1:首先確保你已經完全安裝了Java2的環境,有keytool工具,它位于J2SE%@page contentType="text/html;charset=gb2312"%>
<html>
<title>JWS Test</title>
<head>
<SCRIPT LANGUAGE="Javascript">
function insertLink(url, name) {
document.write("<a href=" + url + ">" + name + "</a><br><br>");
}
insertLink("http://你的IP:8080/ JWSTest /apps/JWSTest.jnlp"," JWSTest ");
</SCRIPT>
</head>
<body>
</body>
</html>
第二步:在jsp中添加檢測訪問的客戶端是否已經安裝了JWS的客戶端的代碼,示例如下:
<%@page contentType="text/html;charset=gb2312"%>
<html>
<title> JWS Test </title>
<head>
<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) {
if (javawsInstalled) {
document.write("<a href=" + url + ">" + name + "</a><br><br>");
} else {
document.write("<a href=" + url + ">"+ name +"</a><br><br>");
}
}
</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>
<SCRIPT LANGUAGE="Javascript">
if(javawsInstalled){
insertLink("http://你的IP:8080/ JWSTest /apps/JWSTest.jnlp"," JWSTest ");
}else{
//通知用戶要先安裝JWS的客戶端,你可以自己提供下載或是直接鏈接到Sun的JWS下載。
//分為兩種,如果客戶端已經安裝了Java運行環境,則只要下載javaws-1_0_1_01-win-int.exe即可。
//如果客戶端沒有安裝Java運行環境,則要下載完整的javaws-1_0_1_01-win-int-rt.exe。
}
</SCRIPT>
</head>
<body>
</body>
</html>
五:JNLP文件
第一步:下面我們來編寫JWS的核心配置文件JNLP,有了它,才能將以上各部分聯系起來,真正讓JWS運轉起來。JNLP文件符合標準的XML語法,實質就是一個XML文件。當然,編寫它的最好方式是對已寫好的JNLP進行改寫。JWSTest.jnlp示例如下:
<?xml version="1.0" encoding="utf-8"?>
<!-- JNLP File for SwingSet2 Demo Application -->
<jnlp
spec="1.0+"
codebase="http://你的IP:8080/JWSTest/apps"
href=" JWSTest.jnlp">
<information>
<title> JWS Test </title>
<vendor>YOUR Name</vendor>
<homepage href=" JWSTest.html"/>
<description> JWS Test </description>
<icon href="images/ JWSTest.jpg"/>
<offline-allowed/>
</information>
<security>
<all-permissions/>
</security>
<resources>
<j2se version="1.3"/>
<jar href="lib/ JWSTest.jar"/>
</resources>
<application-desc main-class="運行啟動的主類"/>
</jnlp>
第二步:部分JNLP的關鍵語法
<jnlp>元素
spec:必須是1.0及以上版本,這里用1.0+,不需修改。
codebase:資源的URL,是JNLP指向各連接的起始處,需自行修改。
Href:JNLP文件相對codebase的存放位置,和JNLP文件的全名,需自行修改。
<infomation>元素
Title:發布的應用程序簡單標題,需自行修改。
Vendor:發行商信息,可以寫上你的
</script>