Eclipse-basierte Anwendung mit Java Web Start implementieren

Anwendungen, die auf Eclipse 3.1 aufbauen, können jetzt mithilfe von Java Web Start implementiert werden.

Java Web Start "ist eine Anwendungsimplementierungstechnologie, die Ihnen Möglichkeit bietet, mit vielen Funktionen ausgestattete Anwendungen mit einem einzigen Klick von Ihrem Web-Browser aus zu starten".

Die Voraussetzungen für einen Start von Eclipse von Java Web Start aus sind:

Die folgenden Schritte beschreiben die Einrichtung einer Java Web Start-Site, die eine featurebasierte RCP-Anwendung startet.

Schritt 1: Ein Wrappering-Feature erstellen

Schritt 2: Wrappering-Feature und die Datei 'startup.jar' exportieren

Hinweis. Bevor Sie mit diesem Schritt fortfahren, stellen Sie sicher, dass ein Schlüsselspeicher zur Verfügung steht. Eclipse bietet keine Funktion zur Erstellung von Schlüsselspeichern. Sie müssen hierzu ein Schlüsseltool verwenden. Stellen Sie darüber hinaus sicher, dass die von Ihnen entwickelte Eclipse-Anwendung auf einem Java-SDK und nicht einem JRE läuft. Wird diese Vorgabe nicht erfüllt, schlägt die JAR-Signierung fehl.

Schritt 3: Die Haupt-JNLP-Datei erstellen

Eine Java Web Start-Anwendung wird durch JNLP-Dateien beschrieben. Diese ersetzen die Dateien 'eclipse.exe' und 'config.ini' durch einen funktional entsprechenden Mechanismus. JNLP verfügt beispielsweise über seinen eigenen Mechanismus zur Steuerung von Eingangsanzeigen, Arten der Übergabe von Parametern und Definition dessen, woraus sich die Anwendung zusammensetzt.

Bei dem Exportiervorgang wurde bereits alle einfachen JNLP-Dateien erstellt, so dass Sie lediglich noch die Hauptdatei zur Steuerung der Anwendung schreiben müssen. Da der Großteil der Hauptdatei für alle Anwendungen gleich ist, wird empfohlen, dass Sie mit der nachfolgenden selbst-dokumentierten Vorlage beginnen.

Auf der Site, die Ihre Anwendung startet, muss sich die Datei im gleichen Ordner befinden, wie die Datei 'startup.jar'. Nachdem Sie die Bearbeitung dieser Datei abgeschlossen haben, ist Ihre Anwendung einsatzbereit.

<?xml version="1.0" encoding="UTF-8"?>
<jnlp 
    spec="1.0+" 
    codebase="http://myCompany.org/jnlpServer" 
    href="mail.jnlp"> <!-- URL der Site mit der JNLP-Anwendung. Sollte mit dem für den Export verwendeten Wert übereinstimmen. Href, der Name dieser Datei -->
  <information>
    <!-- Vom Benutzer lesbarer Name der Anwendung -->
    <title> Mailanwendung</title>  
    <!-- Anbietername -->
    <vendor>Mein Unternehmen</vendor>
    <!-- Anbieter-Homepage --> 
    <homepage href="Meine Unternehmenswebsite" /> 
    <!-- Produktbeschreibung-->
    <description>Dies ist ein Mail-Client</description> 
    <icon kind="splash" href="splash.gif"/>
  </information>
 
  <!--Alle Genehmigungen von der Anwendung anfordert. Bleibt unverändert-->
  <security>
    <all-permissions/>
  </security>
 
  <!-- Name der auszuführenden Hauptklasse. Bleibt unverändert-->
  <application-desc main-class="org.eclipse.core.launcher.WebStartMain">
    <argument>-nosplash</argument>
  </application-desc>
 
  <resources>
    <!-- Verweis auf startup.jar. Bleibt unverändert -->
    <jar href="startup.jar"/>
 
    <!-- Verweis auf alle Plug-ins und Features, aus denen sich die Anwendung zusammensetzt -->
    <!-- Hier wird auf das Wrappering-Feature verwiesen, da es transitiv auf alle anderen notwendigen Plug-ins verweist-->
    <extension 
        name="Wrappering feature"
        href="features/Wrappering_1.0.0.jnlp"/>
 
    <!-- Normalerweise in config.ini angegebene Informationen -->
    <property 
        name="osgi.instance.area" 
        value="@user.home/Application Data/mail"/>
    <property 
        name="osgi.configuration.area" 
        value="@user.home/Application Data/mail"/>
        
    <!-- Die ID des auszuführenden Produkts, wie auf der Übersichtsseite des Produkteditors dargestellt -->
    <property 
        name="eclipse.product" 
        value="mail.product"/>
  </resources>

  <!-- Angabe auf Plattformbasis, welche JRE verwendet werden soll --> 
  <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>

Tipp: Nachdem Sie diese Datei erstellt haben, können Sie sie im Wrappering-Feature im gleichen Ordner speichern, in dem sich auch die Datei 'startup.jar' befindet. So erhalten Sie bei jedem Exportvorgang die vollständige Struktur.

Plug-in-basierte Anwendung

Obwohl Ihre RCP-Anwendung keine Features verwendet, ist ein Java Web Start dennoch möglich.

Hierfür wird empfohlen, ein Wrappering-Feature zu erstellen, um die Erstellung der Haupt-JNLP-Datei sowie die Implementierung zu erleichtern. Diese Wrappering-Feature listet alle Plug-ins Ihrer Anwendung auf. Sobald das Feature aktualisiert wurde, kopieren Sie die generierte JNLP-Datei und ändern Sie sie so ab, dass sie zu Ihrer Haupt-JNLP-Datei wird.

Bekannte Einschränkungen