文檔目錄 一、java web start技術 二、在何處查找有關Java web start 的技術 三、技術要求(桌面和服務器) 四、設置Web站 五、使用自動安裝特性 六、進行應用開發所需考慮的問題 七、打包應用便于部署 八、轉換JNLP文件以使之在此發布版本下工作 九、JNLP文件語法 十、JNLP API 示例 十一、JNLP API (Java文檔)
一、Java web start技術
Java web start是一個與Web瀏覽器相關的應用。當用戶點擊指向一個特定啟動文件(JNLP文件)的超級連接時,將促使Web瀏覽器啟動Java Web Start,Java Web Start將自動下載、緩存以及運行給定基于Java技術的應用。這整個過程除了最初的點擊以外,將不需要任何的用戶干預。 從技術的角度來看,Java Web Start技術有多種要害優點,使之成為進行應用部署的平臺。 1.Java Web Start技術是專門用來啟動J2SE(Java 2 SE platform)開發的應用。但個應用可以在一個Web服務器上開發,并且能配置在其他各種 平臺上,包括Windows 98/NT/2000/ME/XP, linux, Solaris操作系統環境。Java平臺已經被證實是極具魯棒性,高效,多用途的開發平臺,通 過最少化開發和測試成本來節省成本。 2.Java Web Start支持J2SE(Java 2 platform, Standard Edition)的多個修正版本。這樣的話,使得一個應用可以請求它所需平臺的特定版本 ,例如J2SETM 1.4.0。多個應用可以同時運行不同平臺版本下,而不會引起沖突,假如一個應用需要客戶機系統上沒有安裝的平臺版本的話, Java Web Start能夠自動下載并安裝相應平臺版本。 3.Java Web Start答應在瀏覽器環境之外啟動應用。假如不方便或者不可能通過瀏覽器啟動的條件下,能夠對應用進行離線運行。應用程序也 能夠通過桌面快捷方式來啟動,這樣將使得啟動一個基于Web部署的應用程序象啟動本地應用程序一樣簡單。 4.Java Web Start繼續了Java平臺的安全性的優點。Java Web Start技術下的應用在缺省情況下,將在一個保護環境下運行(即沙箱sandbox), 嚴格限制了對本地磁盤系統和網絡資源的訪問。這將答應用戶安全地運行來源于不可信區域的應用程序,而不用擔心會破壞本地安全環境。 5.用Java Web Start啟動的應用程序將緩存在本地。這樣的話,使得一個已經下載的應用程序等同于傳統意義上的已安裝應用程序。 Java Web Start的支持技術是Java TM Network Launching PRotocol & API (JNLP)-Java網絡啟動協議。此技術當前是通過Java Community Process (JCP)進行開發的。Java Web Start 是JNLP規范的參考實現(reference implementation,RI)。JNLP技術其中一點定義了描述怎樣通過 呼叫一個JNLP文件來啟動一個應用程序的一個標準文件格式。
二、在何處查找Java Web Start
Java Web Start 站點http://java.sun.com/prodUCts/javawebstart/, 此處可以下載Java Web Start。JNLP規范在這里可以找到: http://java.sun.com/aboutJava/communityprocess/jsr/jsr_056_jnlp.Html
三、技術要求
1.桌面/客戶端要求 客戶機要求支持Java運行時環境the Java Runtime Environment (JRE)1.2.2或者更高版本。 Java Web Start 適用于 Windows 98/NT/2000/ME/XP, Solaris操作系統環境和 Linux. 具體情況參考readme文檔http://java.sun.com/products/javawebstart/1.2/docs/readme.html 2.服務器要求 Java Web Start應用程序可以部署在標準的web服務器上。為了使用Java Web Start,Web服務器必須配置為支持一種下面將解釋的新MIME類型。
四、設置Web站點
Java Web Start 充分利用了已經存在的Internet技術,例如HTTP協議和Web服務器,這使得已存在的 用于部署基于HTML內容的基礎ā系統能夠重用來使用Java Web Start部署基于Java技術的應用程序。 為了在客戶機上部署你的應用,你必須確保包含應用程序的所有文件能夠通過Web服務器進行訪問。 這意味著你必須拷貝一個或者多個與JNLP文件相一致的jar文件到你的Web服務器目錄中。使Web站點 支持Java Web Start的設置類似于部署基于HTML的內容文件。唯一需要注重的是為Web服務器唄指一 種新的MIME類型。 1、配置Web服務器使之使用Java Web Start MIME類型 配置Web服務器,使所有的以.jnlp為擴展名的文件設置為application/x-java-jnlp-file MIME 類型 。 多數Web瀏覽器根據從Web服務器返回內容的MIME類型來決定怎樣去處理特定的內容。為了讓Web瀏覽 器調用Java Web Start,必須讓服務器對jnlp文件返回application/x-java-jnlp-file MIME 類型。 每個Web服務器都有增加MIME類型的方法。對于Apache Web 服務器,必須增加以下行到.mime.types 配置文件中: application/x-java-jnlp-file JNLP 對于器她服務器,請核對相關文檔。 2、給應用程序建立一個JNLP文件 建立JNLP文件的簡便方法是根據你的要求修改已經存在的JNLP文件。 在后面相關部分將會談到JNLP文件的語法與格式。 3、確保應用程序能夠通過Web服務器進行訪問 確保你的應用程序的JAR文件和JNLP文件能夠用JNLP文件中列出的URL進行訪問。 4、在網頁上建立一個指向JNLP文件的超級連接。 指向JNLP文件的超級連接是一個標準的HTML連接。例如: <a href="MyApp.jnlp">Launch My Application</a> 按照第一步中的設置所述,Web服務器將對所有以.jnlp為擴展名的任何文件自動返回 application/x-java-jnlp-file MIME 類型。這是確保Web瀏覽器在下載此文件的時候啟動Java Web Start的前提條件。 還應該在網頁上提供一個Java Web Start安裝程序的鏈接,這樣將使那些還沒有安裝Java Web Start 的用戶能夠下載和安裝Java Web Start。 對Java Web Start是否安裝的檢測: 在HTML頁面中使用javascript/VBScript可以檢測Java Web Start是否安裝。示例如下: <SCRIPT LANGUAGE="javascript"> <!-- insertLink("http://www.mycompany.com/my-app.jnlp", "My Application"); // --> </SCRIPT> 注重這里的Javascript腳本不能對Gecko-based的瀏覽器(例如:Netscape 6.x)是否安裝Java Web Start進行檢測。 insertLink方法檢測Java Web Start是否安裝。假如已經安裝的話,此方法輸出的HTML將類似于: <a >My Application</a> 假如沒有安裝的話將輸出: Need to install Java Web Start 在實際使用中,這應該是指向一個下載頁面的鏈接。 示例javascript/VBScript如下: <!---- This initializes the navigator.family object ----> <SCRIPT LANGUAGE="javascript" SRC="xbDetectBrowser.js"> </SCRIPT>
<SCRIPT LANGUAGE="javascript"> var javawsInstalled = 0; isIE = "false"; if (navigator.mimeTypes && navigator.mimeTypes.length) { x = navigator.mimeTypes['application/x-java-jnlp-file']; if (x) javawsInstalled = 1; } else { isIE = "true"; } function insertLink(url, name) { <!-- Developers should be aware that for Gecko-based browsersā (NS 6.x) --> <!-- Java Web Start might not be installed ------------------------------> if (javawsInstalled navigator.family == 'gecko') { document.write("<a href=" + url + ">" + name + "</a>"); } else { document.write("Need to install Java Web Start"); } } </SCRIPT> <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 End If </SCRIPT> 以上的示例腳本調用瀏覽器檢測腳本xbDetectBrowser.js。xbDetectBrowser.js的內容如下: /* ***** BEGIN LICENSE BLOCK ***** * Licensed under Version: MPL 1.1/GPL 2.0/LGPL 2.1 * Full Terms at http://devedge.netscape.com/lib/js/license/mpl-tri-license.txt * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Netscape code. * * The Initial Developer of the Original Code is * Netscape Corporation. * Portions created by the Initial Developer are Copyright (C) 2001 * the Initial Developer. All Rights Reserved. * * Contributor(s): Bob Clary * * ***** END LICENSE BLOCK ***** */ function x