JNLP

JNLP(Java Network Launching Protocol )是java提供的一種可以通過瀏覽器直接執行java應用程式的途徑,它使你可以直接通過一個網頁上的url連線打開一個java應用程式。 Java桌面應用程式以JNLP 的方式發布,如果版本升級後,不需要再向所有用戶發布版本,只需要更新伺服器的版本,這就相當於讓java應用程式有了web套用的優點。

基本介紹

在java開發的早期,重點被放在了客戶端開發。語言中對於applet和安全下載的支持對於全球資訊網(WWW)的發布看上去是個不錯的主意。但是現實是java最大的成功在於伺服器端,java的強大功能和適應性贏得了伺服器端開發者的心。同時,客戶端的開發落後了。棘手的開發問題限制了applet的效用,開發者被迫轉向基於瀏覽器的瘦客戶端。

Java Network Launching Protocol (JNLP,java網路載入協定) 承諾改變這個現狀。通過JCP(Java Community Process)的JSR-56的開發, JNLP解決了很多先前用java開發針對客戶端的功能的問題。一個JNLP客戶端是一個應用程式或者說服務,它可以從宿主於網路的資源中載入應用程式。如果你使用JNLP打包一個應用程式,那么一個JNLP客戶端能夠:

o 為該套用探測,安裝並且使用正確版本的JRE(java運行時環境)

o 從瀏覽器或者桌面載入應用程式

o 當新版本的套用出現時自動下載最新的版本。

o 為了加速啟動速度在本機快取應用程式需要的類

o 可以作為applet或者應用程式運行

o 在必要的情況下下載原始的庫

o 以安全的方式使用諸如檔案系統這樣的本機資源

o 自動定位和載入外部依賴資源

檔案具體說明

<?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 href="http://127.0.0.1:8081/webstart/index.html"/>

<!--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>

部署套用

(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

重新部署即可。

相關詞條

相關搜尋

熱門詞條

聯絡我們