Posted on 2009-12-25 16:43
泰仔在線 閱讀(264)
評論(0) 編輯 收藏 所屬分類:
Java 相關
今天在學習netbeans插件開發時,啟動應用使用JWS,例:啟動 NetBeans HTML Editor
想起公司的應用也使用了JNLP部署,所以查了一下資料,了解了一下JNLP和JWS的相關知識。
一。jnlp是什么?是java提供的一種讓你可以通過瀏覽器直接執行java應用程序的途徑,它使你可以直接通過一個網頁上的url連接打開一個java應 用程序.好處就不用說了,如果你的java應用程序以jnlp 的方式發布,如果版本升級后,不需要再向所有用戶發布版本,只需要更新服務器的版本,這就相當于讓java應用程序有了web應用的優點了.
二。jnlp文件的具體說明
<?xml version="1.0" encoding="UTF-8"?>
<!--codebase 屬性指出搜索應用程序資源的頂級URL,下面的icon/jar元素都是以這個URL為基本.-->
<jnlp codebase="http://127.0.0.1:8081/webstart">
<information>
<!-- 在"開始"-"運行"菜單中輸入"javaws"或"javaws -viewer"啟動Web Start,會看到客戶端已經安裝的webstart應用程序-->
<!--title :應用程序標題 vendor:供應商
title/vendor 元素必須,會顯示在用"javaws -viewer"命令
打開的應用程序緩存查看器(Java Application Cache Viewer)中-->
<title>HelloWorld</title>
<vendor>Lively Corporation</vendor>
<description>HelloWorld Test Example for WebStart.</description>
<!--homepage :存放有關應用程序的相關文檔的URL,如help文件等,僅僅是description作用-->
<homepage />
<!--icon 指定圖標會顯示在應用程序緩存查看器中,
在查看器中新建webstart快捷方式到桌面時也會顯示為快捷方式圖標,
只支持GIF/JPEG格式,其它格式無效-->
<icon href="./images/logo.jpg"/>
<!--splash 在sun的文檔中提到會出現在webstart啟動時的閃屏中,不過可能由于速度問題,我沒有觀察到-->
<icon kind="splash" href="./images/logo.jpg"/>
<!-- 允許離線啟動,可以使用javaws -offline命令-->
<offline-allowed/>
</information>
<resources>
<!-- 指定客戶端需要安裝的j2se版本,下面指定為1.5+,
如果版本是1.4,在鏈接此jnlp文件時會提示更新j2se版本-->
<j2se version="1.5+"/>
<!-- 指定要下載到本地的jar文件(注意,所有的文件都需要打包才能夠下載),
可以包含一些資源文件,如icons/configuration files,可以使用getResource方法取得-->
<jar href="./jar/jws/helloworld.jar"/>
</resources>
<!--application-desc 必須,指定webstart啟動時執行jar文件中的哪個類-->
<application-desc main-class="jws.HelloWorld"/>
</jnlp>
三。應用JNLP部署應用
(1)編寫相關應用,打包成一系列jar;
(2)根據jnlp文件說明修改相應的jnlp內容,修改相應的url和jar;
(3)部署jnlp文件和jar到相應的web容器;
(4)編寫訪問網頁,即可使用該應用〔亦可下載jnlp文件使用jws運行應用〕;
四。補充
如果jar需要訪問本地文件資源,需要為你的jar文件簽名
先在命令行用keytool產生一個keystore文件.
keytool -genkey -keystore you.keystore –alias youApp
命令行用jarsigner簽名,當然這時候需要生成keystore時的密碼
jarsigner -keystore you.keystore appTest.jar youApp
重新部署即可
轉自:JNLP介紹