本篇內(nèi)容介紹了“如何使用Java網(wǎng)絡(luò)啟動部署軟件”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
成都創(chuàng)新互聯(lián)公司是專業(yè)的海南網(wǎng)站建設(shè)公司,海南接單;提供成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行海南網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!
Java網(wǎng)絡(luò)啟動(Java Web Start (JWS) )可以實現(xiàn)在網(wǎng)絡(luò)瀏覽器中運(yùn)行具備全部特色的Java應(yīng)用軟件。Sun公司在2001年三月發(fā)布的Java1.0就已經(jīng)具備了對JWS的支持,自從J2SE1.4版本以來,JWS就已經(jīng)成為Java運(yùn)行時環(huán)境(Java Runtime Environment (JRE) )的默認(rèn)配置,不必再單獨(dú)安裝了,在這篇文章中,我將向您介紹這一重要技術(shù)。
技術(shù)
Java網(wǎng)絡(luò)啟動JWS是與網(wǎng)絡(luò)瀏覽器相結(jié)合的應(yīng)用軟件,當(dāng)用戶點擊鏈接的時候就會指向一個Java網(wǎng)絡(luò)啟動協(xié)議(Java Network Launching Protocol (JNLP) )文件,然后瀏覽器自動啟動JWS,接著下載、緩存并運(yùn)行基于Java技術(shù)的應(yīng)用軟件。
在JWS背后的技術(shù)是JNLP及其API,它們是在Java團(tuán)體進(jìn)程(Java Community Process)中開發(fā)的。JWS實際上是JNLP規(guī)范的一個參考實現(xiàn),JNLP技術(shù)定義了一個標(biāo)準(zhǔn)的文件格式,該格式描述了如何調(diào)用一個JNLP文件。
既然安裝鏈接可以作為普通的HTTP URL的鏈接,那么您就可以通過網(wǎng)頁來檢查客戶端是否安裝了JWS,您可以在IE中通過以下代碼來檢查:
< SCRIPT LANGUAGE="VBScript">
on error resume next
If isIE = "true" Then
If Not(IsObject(CreateObject("JavaWebStart.isInstalled"))) Then
javawsInstalled = 0
Else
javawsInstalled = 1
End If
If Not(IsObject(CreateObject("JavaWebStart.isInstalled.1.4.2.0"))) Then
javaws142Installed = 0
Else
javaws142Installed = 1
End If
If Not(IsObject(CreateObject("JavaWebStart.isInstalled.1.5.0.0"))) Then
javaws150Installed = 0
Else
javaws150Installed = 1
End If
End If
< /SCRIPT>
開發(fā)
開發(fā)部署在JWS上的軟件和開發(fā)獨(dú)立運(yùn)行的軟件在Java 2平臺上是基本相同的,比如,程序的起點都是以下的標(biāo)準(zhǔn)代碼:
public static void main(String[] argv)
然而,為了支持網(wǎng)絡(luò)部署,也就是實現(xiàn)自動下載和調(diào)用軟件,并且保證軟件在一個安全的沙盒中運(yùn)行,還需要一些額外的考慮,包括:
應(yīng)用軟件必需作為JAR文件集合來使用;
所有的應(yīng)用軟件資源,比如文件、圖片都必需存儲在JAR文件中,而且它們都必需使用Java 2平臺的getResource機(jī)制來引用;
應(yīng)用軟件可以使用System.exit調(diào)用;
進(jìn)行不受限制地訪問系統(tǒng)的軟件需要通過簽名的JAR文件來使用,而且JAR文件中所有的項目都必需經(jīng)過簽名;
如果軟件要運(yùn)行在一個安全沙盒中,那么它必需遵循以下的限制;
不能進(jìn)行本地磁盤訪問;
所有的JAR文件都必須從同一個主機(jī)下載;
只能和下載JAR文件的主機(jī)之間建立網(wǎng)絡(luò)連接;
不能安裝安全管理器;
不能使用本地類庫;
對系統(tǒng)屬性的訪問受到限制,對于JNLP中定義了的系統(tǒng)屬性,應(yīng)用軟件可以進(jìn)行讀/寫操作,并且對于相同的屬性集合具備和applet一樣的只讀權(quán)限。
安全
JWS是構(gòu)建于Java 2平臺之上的,Java 2平臺提供了一個全面的安全架構(gòu),在Java 6.0版中,Java網(wǎng)絡(luò)啟動則提供了更加強(qiáng)大的安全特色,比如代碼簽名。
在默認(rèn)狀態(tài)下,通過JWS調(diào)用的應(yīng)用軟件將運(yùn)行在一個受到限制的環(huán)境中(一個“沙盒”),它們對本地計算資源的訪問,比如存儲設(shè)備和本地網(wǎng)絡(luò),是有限的。這樣,JWS就保證了下載的潛在的不可信任的軟件不會危及到本地文件或網(wǎng)絡(luò)。
當(dāng)然,應(yīng)用程序也可以請求不受限制的本地系統(tǒng)訪問,在這種情況下,當(dāng)該軟件***次調(diào)用時,JWS將顯示安全警告對話框,安全警告的內(nèi)容包含軟件開發(fā)者的信息。
如果一個應(yīng)用軟件包含了一個或多個經(jīng)過簽名的JAR文件,JWS將會驗證這些JAR文件在簽名后是否發(fā)生過變化,如果數(shù)字簽名的認(rèn)證失敗,那么JWS就不會運(yùn)行該軟件,因為它們已經(jīng)被第三方修改過了。通過在JNLP文件中添加以下的設(shè)置,一個應(yīng)用軟件可以請求完整的權(quán)限。
< security>
< all-permissions/>
< /security>
JNLP文件
JNLP是一個和JWS緊密相關(guān)的概念,它經(jīng)??梢院托g(shù)語“網(wǎng)絡(luò)啟動”相互替代使用,實際上,JNLP是一個規(guī)定了JWS應(yīng)用軟件如何啟動的協(xié)議。JNLP中的包含了諸如JAR包文件的位置、應(yīng)用軟件主要類的名稱,以及程序的其它一些參數(shù)。在適當(dāng)配置的瀏覽器中,JNLP文件是傳遞給JRE的,然后JRE將會下載應(yīng)用軟件到用戶的機(jī)器上并開始執(zhí)行。
一個JNLP文件不包含任何二進(jìn)制數(shù)據(jù),實際上它包含的URL指向所有的二進(jìn)制數(shù)據(jù)和二進(jìn)制代碼資源。這些文件還可以指向其他的JNLP文件,它們被稱為擴(kuò)展描述符,一個擴(kuò)展描述符通常描述了運(yùn)行軟件所必需的組件,在擴(kuò)展描述符中描述的資源將會成為應(yīng)用軟件類路徑的一部分,這樣,常用的功能只需要描述一次即可,以下的例子是一個常見的JNLP文件:
< ?xml version="1.0" encoding="UTF-8"?>
< jnlpcodebase="/upload/otherpic59/513585.jpg"/>
< offline-allowed/>
< /information>
< resources>
< j2se version="1.3+"/>
< jar href="hw.jar"/>
< /resources>
< application-desc main-class="com.helloworld.Hello"/>
< /jnlp>
這個JNLP文件描述了如何調(diào)用名為Hello的程序,在JNLP文件中指定了需要1.3或更高版本的Java來運(yùn)行該程序,同時還有一些與程序相關(guān)的信息,這些信息都會在用戶下載的過程中顯示。
如果您希望了解更詳細(xì)的JNLP協(xié)議和文件格式,可以參考這個官方規(guī)范。
結(jié)論
JWS提供了一種與平臺無關(guān)的、安全的而且強(qiáng)大的部署技術(shù),在Java網(wǎng)絡(luò)啟動中開發(fā)者只需要將應(yīng)用軟件部署在網(wǎng)絡(luò)服務(wù)器上就可以為最終用戶提供全部的功能,而最終用戶也只需要使用網(wǎng)絡(luò)瀏覽器就可以運(yùn)行所需的應(yīng)用軟件,而且永遠(yuǎn)是***的版本。
JWS的一個主要優(yōu)點是它克服了Java插件和不同Java虛擬機(jī)的兼容性問題,但是,使用網(wǎng)絡(luò)啟動的程序卻不能像applet一樣簡單地和瀏覽器進(jìn)行通訊。
“如何使用Java網(wǎng)絡(luò)啟動部署軟件”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!