Java技巧 如何使用JWS網絡啟動部署軟件

發表于:2007-06-10來源:作者:點擊數: 標簽:
Java 網絡 啟動(Java Web Start (JWS) )可以實現在網絡瀏覽器中運行具備全部特色的Java應用軟件。Sun公司在2001年三月發布的Java1.0就已經具備了對JWS的支持,自從J2SE1.4版本以來,JWS就已經成為Java運行時環境(Java Runtime Environment (JRE) )的默認配

 

 

 

 

 

 

 

 

Java網絡啟動(Java Web Start (JWS) )可以實現在網絡瀏覽器中運行具備全部特色的Java應用軟件。Sun公司在2001年三月發布的Java1.0就已經具備了對JWS的支持,自從J2SE1.4版本以來,JWS就已經成為Java運行時環境(Java Runtime Environment (JRE) )的默認配置,不必再單獨安裝了,在這篇文章中,我將向您介紹這一重要技術。

技術

JWS是與網絡瀏覽器相結合的應用軟件,當用戶點擊鏈接的時候就會指向一個Java網絡啟動協議(Java Network Launching Protocol (JNLP) )文件,然后瀏覽器自動啟動JWS,接著下載、緩存并運行基于Java技術的應用軟件。

在JWS背后的技術是JNLP及其API,它們是在Java團體進程(Java Community Process)中開發的。JWS實際上是JNLP規范的一個參考實現,JNLP技術定義了一個標準的文件格式,該格式描述了如何調用一個JNLP文件。

既然安裝鏈接可以作為普通的HTTP URL的鏈接,那么您就可以通過網頁來檢查客戶端是否安裝了JWS,您可以在IE中通過以下代碼來檢查:

開發

開發部署在JWS上的軟件和開發獨立運行的軟件在Java 2平臺上是基本相同的,比如,程序的起點都是以下的標準代碼:

public static void main(String[] argv)

然而,為了支持網絡部署,也就是實現自動下載和調用軟件,并且保證軟件在一個安全的沙盒中運行,還需要一些額外的考慮,包括:

應用軟件必需作為JAR文件集合來使用;

所有的應用軟件資源,比如文件、圖片都必需存儲在JAR文件中,而且它們都必需使用Java 2平臺的getResource機制來引用;

應用軟件可以使用System.exit調用;

進行不受限制地訪問系統的軟件需要通過簽名的JAR文件來使用,而且JAR文件中所有的項目都必需經過簽名;

如果軟件要運行在一個安全沙盒中,那么它必需遵循以下的限制;

不能進行本地磁盤訪問;

所有的JAR文件都必須從同一個主機下載;

只能和下載JAR文件的主機之間建立網絡連接;

不能安裝安全管理器;

不能使用本地類庫;

對系統屬性的訪問受到限制,對于JNLP中定義了的系統屬性,應用軟件可以進行讀/寫操作,并且對于相同的屬性集合具備和applet一樣的只讀權限。

安全

JWS是構建于Java 2平臺之上的,Java 2平臺提供了一個全面的安全架構,在Java 6.0版中,JWS則提供了更加強大的安全特色,比如代碼簽名。

在默認狀態下,通過JWS調用的應用軟件將運行在一個受到限制的環境中(一個“沙盒”),它們對本地計算資源的訪問,比如存儲設備和本地網絡,是有限的。這樣,JWS就保證了下載的潛在的不可信任的軟件不會危及到本地文件或網絡。

當然,應用程序也可以請求不受限制的本地系統訪問,在這種情況下,當該軟件第一次調用時,JWS將顯示安全警告對話框,安全警告的內容包含軟件開發者的信息。

如果一個應用軟件包含了一個或多個經過簽名的JAR文件,JWS將會驗證這些JAR文件在簽名后是否發生過變化,如果數字簽名的認證失敗,那么JWS就不會運行該軟件,因為它們已經被第三方修改過了。通過在JNLP文件中添加以下的設置,一個應用軟件可以請求完整的權限。

JNLP文件

JNLP是一個和JWS緊密相關的概念,它經??梢院托g語“網絡啟動”相互替代使用,實際上,JNLP是一個規定了JWS應用軟件如何啟動的協議。JNLP中的包含了諸如JAR包文件的位置、應用軟件主要類的名稱,以及程序的其它一些參數。在適當配置的瀏覽器中,JNLP文件是傳遞給JRE的,然后JRE將會下載應用軟件到用戶的機器上并開始執行。

一個JNLP文件不包含任何二進制數據,實際上它包含的URL指向所有的二進制數據和二進制代碼資源。這些文件還可以指向其他的JNLP文件,它們被稱為擴展描述符,一個擴展描述符通常描述了運行軟件所必需的組件,在擴展描述符中描述的資源將會成為應用軟件類路徑的一部分,這樣,常用的功能只需要描述一次即可,以下的例子是一個常見的JNLP文件:

這個JNLP文件描述了如何調用名為Hello的程序,在JNLP文件中指定了需要1.3或更高版本的Java來運行該程序,同時還有一些與程序相關的信息,這些信息都會在用戶下載的過程中顯示。

如果您希望了解更詳細的JNLP協議和文件格式,可以參考這個官方規范。

結論

JWS提供了一種與平臺無關的、安全的而且強大的部署技術,開發者只需要將應用軟件部署在網絡服務器上就可以為最終用戶提供全部的功能,而最終用戶也只需要使用網絡瀏覽器就可以運行所需的應用軟件,而且永遠是最新的版本。

JWS的一個主要優點是它克服了Java插件和不同Java虛擬機的兼容性問題,但是,使用網絡啟動的程序卻不能像applet一樣簡單地和瀏覽器進行通訊。(T007)





原文轉自:http://www.anti-gravitydesign.com

評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97