1 建立一個java project,命名為:webstart(名字可能隨便取),加入程式:
package jws;</p><p>import javax.swing.*;</p><p>public class HelloWorld {</p><p>private JFrame jFrame;</p><p>private JPanel jPanel;</p><p>private JLabel label;</p><p>public HelloWorld() {</p><p>jFrame = new JFrame("HelloWorld Test Frame");</p><p>label = new JLabel("Hello, world!");</p><p>jPanel = new JPanel();</p><p>jPanel.add(label);</p><p>jFrame.add(jPanel);</p><p>jFrame.pack();</p><p>jFrame.setSize(400, 150);</p><p>jFrame.setLocation(400, 300);</p><p>jFrame.setVisible(true);</p><p>jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</p><p>}</p><p>// webstart 啟動時執行的主方法</p><p>public static void main(String args[]) {</p><p>new HelloWorld();</p><p>}</p><p>}<br />
2 打包成可執行jar包:
webstart->Export->Runnable JAR file->選擇存放位置和jar名(如:d:/HelloWorld.jar)和啟動並執行main方法所在的類->finish
3 數位簽章:
對打成可執行檔的HelloWorld.jar包用下面的命令來簽名:
a 到Dos狀態下,,進入你們需發布應用程式的jar包所在的目錄,運行下面這句話:
keytool -genkey -keystore myKeystore -alias jwstest
(它們將會提示你們輸入使用者名稱、密碼等,,不用理它們,,按照提示隨便輸入即可,,但一定要記住密碼..運行結束它們將會在當前路徑下建立名為myKeystore(的)檔案..)
b 對你們需發布應用程式(的)jar包進行簽名:
jarsigner -keystore myKeystore yourtest.jar jwstest
(其中yourtest.jar是你們(的)jar包名(這裡就是HelloWorld.jar),你們需要修改它們,,別(的)就不必修改了..運行時會提示你們輸入密碼,,就是你們剛才在產生myKeystore檔案時設定(的)密碼..)
4 在tomcat的webapps檔案夾下建立一個webstart檔案夾,將HelloWorld.jar檔案拷入到它裡面。
5 下面是建一個.jnlp檔案,這個是關鍵性檔案,java web start能工作的主要檔案,它也是我們載入伺服器資源的關鍵所在:
<?xml version="1.0" encoding="UTF-8"?></p><p><!--codebase 屬性指出搜尋應用程式資源的頂級URL,下面的icon/jar元素都是以這個URL為基本.--><br /><jnlp codebase="http://localhost:8080/webstart/"><br /><information><br /><!--<br />在"開始"-"運行"菜單中輸入"javaws"或"javaws -viewer"啟動Web Start,會看到用戶端已經安裝的webstart應用程式<br />--></p><p><!--<br />title:應用程式標題 vendor:供應商;title/vendor元素是必須,會顯示在用"javaws -viewer"命令開啟的應用程式緩衝查看器(Java Application Cache Viewer)中<br />--><br /><title>HelloWorld</title><br /><vendor>Lively Corporation</vendor></p><p><description>HelloWorld Test Example for WebStart.</description></p><p><!--homepage :存放有關應用程式的相關文檔的URL,如help檔案等,僅僅是description作用--><br /><homepage href="http://127.0.0.1:8080/webstart/index.html" mce_href="http://127.0.0.1:8080/webstart/index.html" /></p><p><!--<br />icon 指定表徵圖會顯示在應用程式緩衝查看器中(作為java web應用程式的表徵圖), 在查看器中建立webstart捷徑到案頭時也會顯示為捷徑表徵圖,只支援GIF/JPEG格式,其它格式無效<br />--><br /><icon href="images/Fish13.jpg" mce_href="images/Fish13.jpg" /></p><p><!--splash 在sun的文檔中提到會出現在webstart啟動時的閃屏中,不過可能由於速度問題,我沒有觀察到--><br /><icon kind="splash" href="images/Fish13.jpg" mce_href="images/Fish13.jpg" /></p><p><!-- 允許離線啟動,可以使用javaws -offline命令--><br /><offline-allowed/><br /></information></p><p><resources><br /><!--<br />指定用戶端需要安裝的j2se版本,下面指定為1.5,也可以用1.5+表示1.5版本以上的, 如果這裡設定版本為1.5,而我機裝的是1.6(所以我這裡設定為1.7也會出現後面的問題),那麼提示正在請求 JRE 1.5,過一段時間提示:無法啟用該應用程式,提示手動更新j2se版本<br />改為1.5+就可以用1.6的JRE來運行它了<br />--><br /><j2se version="1.5+" /></p><p><!--<br />指定要下載到本地的jar檔案(注意,所有的檔案都需要打包才能夠下載), 可以包含一些資源檔,如icons/configuration files,可以使用getResource方法取得<br />--><br /><jar href="HelloWorld.jar" mce_href="HelloWorld.jar" /><br /></resources></p><p><security><br /> <all-permissions/><br /></security></p><p><!--application-desc 必須,指定webstart啟動時執行jar檔案中的哪個類--><br /><application-desc main-class="jws.HelloWorld" /><br /></jnlp>
將該設定檔命名為helloWorld.jnlp,什麼名字都可以的,然後拷到HelloWorld.jar所在的tomcat檔案裡去。
6 開啟tomcat伺服器,用http://localhost:8080/webstart/helloWorld.jnlp就可以訪問helloWorld.jnlp檔案,伺服器再根據helloWorld.jnlp檔案來載入HelloWorld.jar檔案,就可以在用戶端直接運行伺服器的資源,它工作過程是先將伺服器資源下載到客戶機,再啟動並執行,每一次訪問都會到伺服器去看可執行jar包是否為最新的,本地若不是最新的就重新載入最新的,再運行,保持資源的最新版本;。沒有改動時程式會直接從用戶端啟動,這樣就會比較快。