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

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

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

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

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

第 1 步驟,建立封套特性

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

附註:在繼續這個步驟之前,請務必備妥可用的金鑰儲存庫。 Eclipse 不提供任何建立金鑰儲存庫的機能。 您可以使用 JDK 所檢附的 Keytool 應用程式。 此外,請確定您用來開發的 Eclipse 是在 Java SDK 執行,而非在 JRE 執行。如果不符合這個限制,JAR 簽章會失敗。

第 3 步驟,建立主要 JNLP 檔案

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

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

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

  <?xml version="1.0" encoding="UTF-8"?>
<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="Wrapper 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 檔。

雜項

Linux 的 Java Web Start

當利用 Linux 的 Web Start 來啟動 Eclipse 應用程式時,預設視窗系統是 Motif。 如果您要執行 GTK,您必須在主要 JNLP 檔中,將 osgi.ws 內容設為 "gtk"。 例如,您可以新增:

  <resources os="Linux"/>
        <property name="osgi.ws" value="gtk"/>
  </resources>

已知的限制