以 Java Web Start 部署 Eclipse 型的應用程式

在 Eclipse 3.1 建置的應用程式,現在可以利用 Java Web Start 來部署。

Java Web Start 是種應用程式部署技術,可讓您從 Web 瀏覽器按一下, 即可啟動功能完整的應用程式。

從 Java Web Start 啟動 Eclipse 的必備條件如下:

下列步驟說明如何設定 Java Web Start 站台,來處理特性型的 RCP 應用程式。

步驟 1,建立封套式特性

步驟 2,匯出封套式特性和 startup.jar

附註:在繼續進行這個步驟之前,請先確定有可用的金鑰儲存庫。Eclipse 不提供任何建立金鑰儲存庫的機能。您需要使用 Keytool。此外,請確定您用來開發的 Eclipse 是在 Java SDK 執行,而非在 JRE 執行。如果不符合這個限制,JAR 簽章會失敗。

步驟 3,建立主要 JNLP 檔

Java Web Start 應用程式是由 JNLP 檔來說明。它們會以一些對等的機制來取代 eclipse.exe 和 config.ini 檔。 比方說,JNLP 有自己的機制來控制歡迎畫面、傳遞參數的方式,以及定義構成應用程式的項目。

當您執行匯出時,即會建立所有簡單的 JNLP 檔,因此您只需要撰寫控制應用程式的主要檔即可。由於主要檔的大部分對所有應用程式來說都是通用的, 因此建議您從以下自我記錄的範本開始。

在負責處理應用程式的站台上,該檔案必須位於與 startup.jar 相同的資料夾中。 一旦完成編輯這個檔案,應用程式就已備妥。

<?xml version="1.0" encoding="big5"?>
<jnlp
    spec="1.0+" 
    codebase="http://myCompany.org/jnlpServer" 
    href="mail.jnlp"> <!-- 含有 jnlp 應用程式之站台的 URL。它應該符合匯出時使用的值。Href,這個檔案的名稱 -->
  <information>
    <!-- 使用者可讀取的應用程式名稱 -->
    <title> Mail Application </title>
    <!-- 供應商名稱 -->
    <vendor>My company</vendor>
    <!-- 供應商首頁 -->
    <homepage href="My company website" /> 
    <!-- 產品說明 -->
    <description>This is a mail client</description> 
    <icon kind="splash" href="splash.gif"/>
  </information>
 
  <!--要求應用程式的所有許可權。這不會改變-->
  <security>
    <all-permissions/>
  </security>
 
  <!-- 要執行的 main 類別的名稱。這不會改變-->
  <application-desc main-class="org.eclipse.core.launcher.WebStartMain">
    <argument>-nosplash</argument>
  </application-desc>
 
  <resources>
    <!-- 參照 startup.jar。這不會改變 -->
    <jar href="startup.jar"/>
 
    <!-- 參照構成應用程式的所有外掛程式和特性 -->
    <!-- 在這裡我們參照了封套式特性,因為它會遞移參照所有其他必要的外掛程式 -->
    <extension
        name="Wrappering feature"
        href="features/Wrappering_1.0.0.jnlp"/>
 
    <!-- 通常指定在 config.ini 中的資訊 -->
    <property 
        name="osgi.instance.area" 
        value="@user.home/Application Data/mail"/>
    <property 
        name="osgi.configuration.area" 
        value="@user.home/Application Data/mail"/>
        
    <!-- 要執行的產品 ID,如同顯示在產品編輯器之「概觀」頁面中的一樣 -->
    <property 
        name="eclipse.product" 
        value="mail.product"/>
  </resources>

  <!-- 指出 JRE 使用的平台基礎 -->
  <resources os="Mac">
    <j2se version="1.5+" java-vm-args="-XstartOnFirstThread"/>
  </resources>
  <resources os="Windows">
    <j2se version="1.4+"/>
  </resources>
  <resources os="Linux">
    <j2se version="1.4+"/>
  </resources>
</jnlp>

提示:建立這個檔案之後,您就可以將它儲存在封套式特性中並置於與 startup.jar 相同的資料夾下, 使得每次匯出時,您都會取得完整的結構。

外掛程式型的應用程式

即使 RCP 應用程式不使用特性,也可以使用 Java Web Start。

若要執行這項作業,建議您建立封套式特性,以便幫助建立主要 JNLP 檔並使部署更容易。 這個封套式特性會列出應用程式所有的外掛程式。更新好特性之後,請複製所產生的 JNLP 檔並加以修改,使其成為您的主要 JNLP 檔。

已知的限制