JNLP說明(good)

轉自(http://blog.csdn.net/llythh/archive/2009/06/26/4299490.aspx)

Java Web Start 是一個 helper 應用程序,它和 WEB 瀏覽器關聯在一起。當用戶點擊指向一個特定的 launch 文件 (JNLP 文件 ) 時,會促使瀏覽器裝載 Java Web Start, JAWS 然後自動下載、緩衝、運行給定的基於 JAVA 技術的應用程序。整個過程無需和用戶進行交互。

JNLP URLs 也可以從 JAWS 應用程序管理直接打開並且能製成書籤 , 此外,它們也可以是 .html 或者 .jnlp 文件。

從技術的觀點來看, JAWS 有許多關鍵的好處使得它在部署應用程序方面成爲一個有吸引的平臺:

Ø JAWS 專用於裝入運行基於 Java 2 SE 平臺編寫的應用程序。因此,應用程序可以置於 WEB SERVER 中且能被部署在各種平臺中包括 WINDOWS 系列、 Linux Unix 等。

Ø  JAWS 支持 J2SE 的不同版本,因此,應用程序可以請求它所需要的特定版本。比如 J2SE1.4.0. 幾個基於不同 J2SE 版本的應用程序能同時運行而不會造成衝突。並且在客戶端操作系統未安裝應用程序所需的 J2SE 版本時, JAWS 能自動下載且安裝它。

Ø  JAWS 允許應用不依賴於 WEB 瀏覽器進行裝載和運行。應用程序也可以通過桌面快捷方式啓動運行。

Ø JAWS 充分利用了平臺內置的安全特性。應用程序默認情況下是運行在沙袋中,限制對本地磁盤以及網絡資源進行訪問 . 它允許用戶安全的運行來自不受信任的源頭的應用程序。

Ø  JAWS 裝載運行的應用程序,會在本地被緩存起來,因此,運行一個已下載的應用程序和運行一個傳統的安裝了的應用程序是一樣的。

 

Java Web Start 所基於的技術是 Java Network Launching Protocol & API(JNLP). 它目前正由 Java Community Proces(JCP) 進行開發。 Java Web Start JNLP 規格的參考實現。 JNLP 技術定義了一個標準的文件格式以描述怎樣通過調用 JNLP 文件來裝載運行一個應用程序。

 

客戶端機器需要支持 JRE1.2.2 及以後版本。服務器方面來說,由於應用程序能被部署在任何標準的 Web Server 上,所以只要求 Web Server 配置以支持新的 MIME type.

 

1.1 配置 WebSite

爲了在客戶端運行應用程序,必須確保應用程序所需的的文件可以通過 Web Server 進行訪問。典型的做法就是把應用程序所需的所有 JAR 文件以及 JNLP 文件放入 Web Server 特定的目錄中,同普通的基於 Html 內容的部署沒有什麼區別,唯一需要注意的就是在 Web Server 中配置一個新的 MIME type.

 

基本步驟

1. 對所有以 .jnlp 擴展名結尾的文件,設置它的 MIME type application/x-java-jnlp-file

大多數 WEB 瀏覽器會根據從 Web Server 隨同內容一同返回的 MIME type 來決定怎樣對內容進行處理。 Server 針對 JNLP 文件則必須返回 application/x-java-jnlp-file 形式的 MIME type, 以便瀏覽器調用 Java Web Start.

 

不同的 Web Server 指定 MIME type 的方式可能不同。比如 Apache Web Server 必須在 .mime.types 配置文件中增加如下行: application/x-java-jnlp-file JNLP

 

2. 爲應用程序創建 JNLP 文件,語法參見後續章節。

3. 確保應用程序的 JAR 文件以及 JNLP 文件是可訪問的(通過 JNLP 文件中列出的 URLs 的方式)

4. 創建 WEB PAGE 來裝載運行應用程序。見後續章節。

 

1.2 編寫裝載 Application WebPage

比如希望能從 Web 站點 http://www.yyy.zzz 裝載 app.jnlp 。則需要在 Web Page 中應包含如下鏈接:

<a href=http://www.yyy.zzz/app.jnlp> Launch the application</a>

 

在許多情況下,用戶的機器上沒有安裝 JAWS, 因此, WEB 頁還必須包含教本以已考慮 JAWS 沒有安裝的情況,其邏輯如下:

Ø  如果檢測到 JAWS 安裝了,則裝載運行程序

Ø  如果檢測到沒有安裝 JAWS ,再檢測是否是再在 WINDOWS 上的 IE 運行

n 是,提供一個能自動安裝 JRE WEB 頁面

n  不是,提供一個下載 SDK/JRE 的通用下載頁面。

後面有討論相關的腳本以及自動安裝的 HTML

 

Detecting if JAWS is installed on Netscape

 

  1. <SCRIPT LANGUAGE= "JavaScript" >  
  2. var  javawsInstalled = 0;  
  3. var  javaws12Installed = 0;  
  4. var  javaws142Installed=0;  
  5. isIE = "false" ;  
  6. if  (navigator.mimeTypes && navigator.mimeTypes.length) {  
  7. x = navigator.mimeTypes['application/x-java-jnlp-file' ];  
  8. if  (x) {  
  9. javawsInstalled = 1;  
  10. javaws12Installed=1;  
  11. javaws142Installed=1;  
  12. }  
  13.   
  14. }else  {  
  15. isIE = "true" ;  
  16. }  
  17. </SCRIPT>  

上述代碼查看 navigator.mimeTypes 對象和 navigator.mimeTypes.length 變量,以決定瀏覽器是 IE 還是 Netscape. IE 來說,儘管定義了 navigator.mimeTypes 但其長度爲 0 ;而對於 Netscape 來說,其長度不爲 0 ,而且,在 Netscape 中無法決定哪個 JAWS 的版本安裝了。所以三個變量都設爲 1

 

Detecting if JavaWeb Start is installed on IE, and if so, the version

 

  1. <SCRIPT LANGUAGE= "VBScript" >  
  2. on error resume next  
  3. If isIE = "true"  Then  
  4. If Not(IsObject(CreateObject("JavaWebStart.isInstalled" ))) Then  
  5. javawsInstalled = 0  
  6. Else  
  7. javawsInstalled = 1  
  8. End If  
  9. If Not(IsObject(CreateObject("JavaWebStart.isInstalled.2" ))) Then  
  10. javaws12Installed = 0  
  11. Else  
  12. javaws12Installed = 1  
  13. End If  
  14. If Not(IsObject(CreateObject("JavaWebStart.isInstalled.3" ))) Then  
  15. javaws142Installed = 0  
  16. Else  
  17. javaws142Installed = 1  
  18. End If  
  19. End If  
  20. </SCRIPT>  

 

 

上面腳本用來檢測 IE 中安裝的是哪個版本。腳本實例化一個 JavaWebStart.dll 中的 isInstalled COM 對象。這個對象決定幾件事情:

l   客戶端機器是否有任何的 JAWS 安裝了

l   客戶端機器是否安裝了 JAWS 1.2

l   客戶端機器是否安裝了 JAWS 1.4.2

 

Launching the application if JAWS is Installed or providing a link for auto-install or general download page

可以編寫另外的腳本用來決定是否:

l 提供一個鏈接給應用程序的 jnlp 文件(在 JAWS 安裝了情況下)

l 初始化 JRE1.4.2 的自動下載,它包含了 JAWS( JAWS 沒有安裝且用戶用的是 IE)

l 或者提供一個下載 1.4.2 SDK/JRE 的通用下載頁面( JAWS 沒有安裝且用戶不是使用 IE

 

下面的代碼處理這種場景:

 

 

  

Java.sun.com 站點提供的 PluginBrowserCheck 程序的作用是檢查客戶端微軟 Windows 平臺上使用的是否是 IE 瀏覽器。如果是用 IE 瀏覽器,則把用戶引向自動安裝頁面 http://www.yyy.zzz/download.html (下段描述怎樣創建自動安裝頁面)。如果 PluginBrowserCheck 程序檢測到客戶 WINDOWS 平臺上用的不是 IE 瀏覽器,則用戶會被重定向到 java.sun.com 站點上 1.4.2 JRE 通用的下載頁面。

 

Creating an auto-install page

 

Java Web Start 一起,一個 ActiveX 控件也會被下載到客戶端,這個 ActiveX 控件將使用新安裝的 Java Web Start 裝載啓動應用程序。 PARAM 標籤指明瞭應用程序 jnlp 的位置,以便在 JRE 安裝完成之後,可以被自動裝載運行。

 

JRE 版本

.cab File for codebase attribute for Autodownload

1.4.0

http://java.sun.com/products/plugin/autodl/jinstall-1_4_0-win.cab

1.4.0 _01

http://java.sun.com/products/plugin/autodl/jinstall-1_4_0_01-win.cab

1.4.0 _02

http://java.sun.com/products/plugin/autodl/jinstall-1_4_0_02-win.cab

1.4.0 _03

http://java.sun.com/products/plugin/autodl/jinstall-1_4_0_03-win.cab

1.4.0 _04

http://java.sun.com/products/plugin/autodl/jinstall-1_4_0_04-win.cab

1.4.1

http://java.sun.com/products/plugin/autodl/jinstall-1_4_1-windows-i586.cab

1.4.1 _01

http://java.sun.com/products/plugin/autodl/jinstall-1_4_1_01-windows-i586.cab

1.4.1 _02

http://java.sun.com/products/plugin/autodl/jinstall-1_4_1_02-windows-i586.cab

1.4.1 _03

http://java.sun.com/products/plugin/autodl/jinstall-1_4_1_03-windows-i586.cab

1.4.2

http://java.sun.com/products/plugin/autodl/jinstall-1_4_2-windows-i586.cab

1.4.2 _01

http://java.sun.com/update/1.4.2/jinstall-1_4_2_01-windows-i586.cab

1.4.2 _02

http://java.sun.com/update/1.4.2/jinstall-1_4_2_02-windows-i586.cab

1.4.2 _03

http://java.sun.com/update/1.4.2/jinstall-1_4_2_03-windows-i586.cab

1.5.0

http://java.sun.com/update/1.5.0/jinstall-1_5_0-windows-i586.cab

1.5.0 _01

http://java.sun.com/update/1.5.0/jinstall-1_5_0_01-windows-i586.cab

1.5.0 _02

http://java.sun.com/update/1.5.0/jinstall-1_5_0_02-windows-i586.cab

1.5.0 _03

http://java.sun.com/update/1.5.0/jinstall-1_5_0_03-windows-i586.cab

 

 

1.3 應用程序開發應考慮的幾點

開發基於 Java Web Start 部署技術的應用程序和普通的應用程序幾乎沒有什麼差別,入口依然是

public static void main(String[] argv) . 然而,爲支持 WEB 部署-自動下載且啓動應用程序-且確保應用程序能在安全的沙袋中運行,有幾個額外需要考慮的地方:

1.   應用程序必須由一系列 JAR 文件組成。

2.   應用程序的所有資源,比如文件以及圖像必須打包成 JAR 文件。而且他們必須使用 getResource (。。。)方法來進行引用。

3.   如果所寫的應用程序在安全的沙袋裏面運行,必須遵循下面的約束 :

a)   不能訪問本地磁盤

b)   所有 JAR 文件必須從同一臺主機上下載

c)   只允許建立到所下載的 JAR 文件所在的主機的網絡連接

d)   不能安裝安全管理器

e)   不能使用本地庫( native libraries

f)   只能訪問部分系統屬性( system properties , 應用程序有權讀寫 JNLP 文件中定義的所有系統屬性。有權讀 Applet 能訪問( access )的屬性。

g)   應用程序允許調用 System.exit

h)   如果希望應用程序能無限制的訪問系統資源,就必須對 JAR 進行簽名。每個 JAR 文件裏面的所有項都必須簽名。

 

Ø   Retrieving Resources from JAR files

Java Web Start 僅從 Web Server 上傳輸 JAR 文件到客戶端機器上, JAWS 來決定把 JAR 文件在本地機器上的存儲位置。因此,應用程序無法使用與本地磁盤相關的路徑來訪問資源,比如圖像或者配置文件。

所用應用的資源必須從 JAR 文件中獲取,它們在 JNLP 文件中由 resource 段進行描述指定,或者也可以顯示地使用一個到 Web Server HTTP request 來獲取。但建議還是把資源存儲在 JAR 文件中,因爲會被緩存在本地機器上。

 

ClassLoader cl = this.getClass().getClassLoader();
   Icon saveIcon  = new ImageIcon(cl.getResource("images/save.gif "));
   Icon cutIcon   = new ImageIcon(cl.getResource("images/cut.gif "));

假定 JAR 文件中存在項目 images/save.gif images/cut.gif

 

 

Ø   Security and Code Signing

1.    保護用戶免受惡意代碼影響本地文件

2.    保護企業免使代碼嘗試訪問或者破壞網絡上的數據。

 

如果應用程序的 JAR 經過了簽名,那麼 JAWS 將會檢查 JAR 文件的內容是否被修改過,如果被修改過,則 JAWS 不會運行應用程序。因爲程序被第三方損害過。

 

支持代碼簽名對用戶和應用提供者而言都是很重要。客戶可以知道代碼來自可以信任的地方。因爲代碼提供者對代碼進行了簽名,第三方無法在 WEB 上對代碼進行修改。一個簽名的應用如果被用戶接收信任,那麼該應用程序就擁有額外的訪問系統的特權了,比如訪問本地磁盤。 JAWS 在裝載啓運應用程序之前,會顯示一個對話框,該對話框描述了應用程序來自哪裏,所基於的簽名者的證書。然後用戶可以根據這些信息來決定是否授予特定的權限給下載的代碼。

 

如果應用程序的所有 JAR 文件都簽名了,那麼,在 JNLP 文件中包含如下腳本,就可以允許應用程序任意訪問客戶系統了。

<security>
     <all-permissions/>
   </security>

 

Java 2 SE JRE 1.4.2 支持 SHA1withDSA and MD5withRSA 算法進行代碼簽名。 Java 2 SE JRE 1.4.2 提供了的標準工具 jarsigner 用來進行代碼簽名以及創建證書。

 

用一個測試用的證書來簽名 JAR 文件的 步驟如下:

1.    確認有 keytool jarsigner 工具(在 JDK bin 目錄下)

2.    keystore 裏創建一個新的 key

keytool -genkey  - keystore  myKeystore -alias myself

工具會提示輸入一些關於 key 的一些其它信息,比如密碼和名稱等。這個命令將在磁盤上創建 myKeystore 文件。

3. 創建一個自簽名的用來測試用的證書:

keytool -selfcert -alias myself -keystore myKeystore

會提示你輸入建立 key 時輸入的密碼。

4.   檢查是否正確:

keytool -list -keystore myKeystore

 

顯示如下信息:

Keystore type: jks
Keystore provider: SUN
Your keystore contains 1 entry:
myself , Tue Jan 23 19:29:32 PST 2001, keyEntry,
Certificate fingerprint (MD5):
C2:E9:BF:F9:D3:DF:4C:8F:3C:5F:22:9E:AF:0B:42:9D

5.   最後,用測試證書來簽名 JAR 文件

jarsigner -keystore myKeystore test.jar myself

針對所有的 JAR 文件重複這個步驟。

 

Ø  How to Encode JNLP Files

爲了編碼( encode )一個 JNLP 文件,在 XML prolog 中指定 encoding:

<?xml version="1.0" encoding="utf-16"?>

注意:這個 XML prolog 本身必須是 UTF-8-encoded

 

Ø   Dynamic Download of HTTPS Certificates

未完!

 

1.4 JnlpDownloadServlet Guide

對已打包成 WAR 文件或者爲打包的 WEB 程序,自動修改 JNLP 文件 , 自動下載。

 

1.5 JNLP File Syntax

一個完整的例子

 

 

  1. <?xml version= "1.0"  encoding= "utf-8" ?>  
  2. <!-- JNLP File for  SwingSet2 Demo Application -->  
  3. <jnlp  spec="1.5+"   codebase= "http://my_company.com/jaws/apps"   href= "swingset2.jnlp"  mce_href= "swingset2.jnlp" >  
  4.   <information>  
  5.     <title>SwingSet2 Demo Application</title>  
  6.     <vendor>Sun Microsystems, Inc.</vendor>  
  7.     <homepage href="docs/help.html"  mce_href= "docs/help.html" />  
  8.     <description>SwingSet2 Demo Application</description>  
  9.     <description kind="short" >A demo of the capabilities of the Swing Graphical User Interface.</description>  
  10.     <icon href="images/swingset2.jpg"  mce_href= "images/swingset2.jpg" />  
  11.     <icon kind="splash"  href= "images/splash.gif"  mce_href= "images/splash.gif" />  
  12.     <offline-allowed/>   
  13.     <association mime-type="application-x/swingset2-file"  extensions= "swingset2" >  
  14.     <shortcut online="false" >  
  15.       <desktop/>  
  16.       <menu submenu="My Corporation Apps" />  
  17.     </shortcut>  
  18.   </information>  
  19.   
  20.   <information os="linux" >     
  21.     <title> SwingSet2 Demo on Linux </title>  
  22.     <homepage href="docs/linuxhelp.html"  mce_href= "docs/linuxhelp.html" >  
  23.   </information>  
  24.   
  25.   <security>  
  26.       <all-permissions/>  
  27.   </security>  
  28.   
  29.   <resources>  
  30.     <j2se version="1.4.2+"  java-vm-args= "-esa -Xnoclassgc" />  
  31.     <jar href="lib/SwingSet2.jar"  mce_href= "lib/SwingSet2.jar" />  
  32.   </resources>  
  33.   
  34.   <application-desc main-class = "SwingSet2" />  
  35. </jnlp>   

   

根元素是 jnlp ,它包含四個子元素: information , security , resources application-desc . 此外, Java Web Start 也通過 applet-desc 元素支持裝載運行 applets

 

Ø  JNLP 元素

spec :指明 JNLP 規格的版本,默認爲 "1.0+".

codebase JNLP 文件中所有 href 屬性指定的相對 URL 都是以這個屬性值爲基礎的。

Href : 一個 URL, 指定 JNLP 文件本身所在的位置

Ø  INFORMATION 元素

n    Title : 應用程序的名字,必需

n    Vendor : 應用廠商的名字,必需

n    Homepage : 只包含一個 href 屬性,用來定位應用程序所在的主頁。 JNLP Client 能用它來把用戶指向 Web Page, 在哪裏用戶能找到更多的關於應用程序的信息

n    Description : 簡短的對應用程序的描述。此元素是可選的。 kind 屬性用來規定怎樣使用描述, kind 的值如下三個 One-line short tooltip. 每個這種的元素只能有一個, JNLP 文件中可以包含多個 description 元素。比如某 JNLP 文件種有如下代碼:

 

    <description>SkylinkLMS - Logistics Management System</description>

    <description kind="short" >SkylinkLMS</description>

<description kind="one-line" >SkylinkLMS</description>

 

沒有指定 kind 屬性的元素將被當作默認的,在 Java Web Start 沒有找到所需要的 kind 時,就使用默認的

n    Icon : 包含一個指向格式爲 GIF 或者 JPEG 的圖片的 HTTP URL. 這個圖標用來描述以下幾個方面:

ü   during launch when Java Web Start presents the application to the user;

ü   in the Java Application Cache Viewer;

ü   in desktop shortcuts.

       下載時,顯示 64 × 64 ,在 Java Application Cache Viewer 以及桌面圖標爲 32x32.Java Web Start 自動調整圖標到合適的尺寸。

ü  Icon 元素需要 href 屬性用來指定圖標文件的目錄以及名字。

ü  可選的屬性 kind= splash 用來指定在啓動應用程序期間顯示的“ splash ”屏幕中,需要顯示的圖標。

如果 JNLP 文件中沒有包含 kind 屬性的 icon 元素, Java Web Start 仍將用 information 元素中的其它項來構造 splash screen.JNLP 文件中可以包含多個圖標元素。

  <icon href="images/swingset2.jpg"/>
      <icon kind="splash" href="images/splash.gif"/>

ü   可選的 WIDTH HEIGHT 屬性描述了圖標的大小。

 如果 JNLP 文件中沒有包含任何的 icon 元素, splash image 將用應用程序的 title vendor 來構造。

 

n                      Ø   Offline-allowed 元素

可選元素,說明應用程序是否可以離線啓動。如果指定,則應用程序在離線的情況下也可以裝載運行。如果應用離線裝載運行,將不會檢查程序的更新情況,並且 API BasicService.isOffline() 將返回 true.

Offline-allowed 元素控制 Java Web Start 怎樣檢查應用程序的更新情況。如果此元素沒有出現(也就是沒有指定)則應用程序必須在線運行,在啓動應用之前將會先檢查程序是否存在更新版本,如果有,則會在下載了更新版本之後才啓動應用程序。

如果指定了 offline-allowed 元素, Java Web Start 也會檢查應用是否存在更新。但是,如果應用已經下載,那麼檢查動作在幾秒之後就會 timeout( 所以應提供一個比較快速 server connection), 如果 timeout, 就會啓動 cached application.

n   Shortcut 元素

可選元素。包含可選的 online 屬性,爲 true, 應用將優先創建一個在線啓動的快捷,如果爲 false, 應用將優先創建一個離線啓動的快捷。

子元素: desktop 指示應用程序是否放置一個快捷方式在桌面上

子元素: menu 指示應用程序是否放置一個菜單在 start menu 上。這個元素有一個 submenu 屬性,包含一個字符串,描述是否建立一個子菜單。

n   Association 元素 可選的元素。用來說明是否讓操作系統把某擴展和某 mime-type 註冊關聯。它有兩個必需的屬性 extensions mime-type

n   Related_content 元素

<information>

...

<related-content href="readme.html">

<title>README</title>

<description>The README file contains  the … product</description>

<icon href="readme.jpg"/>

</related-content>

 

<related-content href="register.html">

<title>Program Registration</title>

<description>Register this product to receive support products</description>

  </related-content>

</information>

        

Ø               Ø   Security 元素

默認情況下,應用程序在受限的執行環境中運行,類似於小應用中沙袋。這個元素允許應用請求不受限制的訪問。

如果 all-permissions 子元素被指定了,那麼應用就有對客戶端機器和本地網絡“全部訪問權限”。如果應用請求了“全部訪問權限”,那麼所有的 JAR 文件都必須簽名。而且應用在第一次啓動時會提示用戶是否接收證書。

Ø              Ø   Resources 元素

資源元素用來描述所有的資源,比如 jar 文件、 native 庫、系統屬性等,它們都是應用的一部分。資源的定義受限於特定的操作系統、 architecture 或者 locale os arch.

資源元素有留個不同的子元素 jar , nativelib , j2se , property , package , and extension . 在這裏不討論 package extension

 n   jar 子元素

指定應用所需的 JAR 文件所在的路徑,用 href 屬性指明。

<jar href="sound.jar" download ="eager" main=”true”/>

Jar 元素有一個可選的 main 屬性,用來指出此包中是否包含 Main 類。在 JNLP 文件中,至少要有一個 jar 元素指明是 main= ”true” 的,如果沒有任何 jar 元素指定爲 main 的,那麼默認第一個 jar 元素就是 main 的。

 

n   nativelib 子元素

指出包含本地庫的JAR 文件。本地庫文件必須符合操作系統平臺命名的習慣,比如WINDOWS 必須時.dllSolaris/Linux 必須

lib*.so 。應用程序負責調用System.loadLibrary 來裝載它們。

 

<resources os="Windows"/>

<nativelib href="lib/windows/corelibs.jar"/>

</resources>

 

<resources os="SunOS" arch="SPARC">

<nativelib href="lib/solaris/corelibs.jar"  download ="lazy"/>

</resources>

 

Download 屬性有兩個值: eager 說明在應用程序啓動之前必須下載到本地; lazy 說明在啓動之前沒有必要下載到本地。

 

n j2se 子元素

此元素指明瞭應用程序所支持的 JRE 的版本以及傳遞給 JVM 的標準參數

        <j2se version ="1.3" initial-heap-size="64m" max-heap-size="128m"/>
       <j2se version ="1.4.2+" href ="http://java.sun.com/products/autodl/j2se"

java-vm-args="-esa -Xnoclassgc"/>

默認情況下, version 指的是平臺版本,當前 JRE 平臺版本有 1.2,1.3,1.4 1.5( 平臺版本沒有包含微版本號比如 1.4.2 )

 

Version 也可以指定精確的版本號,比如 1.3.1 _07, 1.4.2, or 1.5.0-beta2 但必須包含 href 屬性,如:

<j2se version="1.4.2" href="http://java.sun.com/products/autodl/j2se"/

<j2se version="1.4.2_04" href="http://java.sun.com/products/autodl/j2se"/>

 

如果指定了一個平臺的版本, Java Web Start 將不會考慮那些 已安裝了的 non-FCS (i.e., milestone) JRE ,比如:

<j2se version="1.4+"/>

將不會考慮已安裝了的 1.4.1 -ea 或者 1.4.2-beta JRE as a match for the request

 

    n  property 元素

 指定系統屬性,可以通過 System.getProperty() System.setProperty() 來訪問。這個元素有兩個屬性: name value.

 

 

 

Application-desc 元素

此元素用來指明裝載運行的普通的應用程序而不是 applet. 它有幾個屬性:

可選屬性 main-class 以及一個或多個嵌套的 argument 子元素

  <application-desc main-class="Main">
      <argument>arg1</argument>
      <argument>arg2</argument> 
    </application-desc>

  如果 JNLP 文件包含的第一個 JAR 文件中的 manifest 文件中有 main class, 那麼就可以省略 main-class 屬性

 

1.6 裝載細節

應用程序的 main class 默認情況下,是由 application-desc 元素的 main-class 屬性決定的。如果沒有指定這個屬性,那麼 main JAR 文件中的 manifest 項將被使用,其中指出了哪個是 main class.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章