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