Java Web Start

Einstieg
Schritte zur Java Web Start Anwendung
Eine einfache Anwendung
Jar-File der Anwendung erzeugen
Signieren des Jar-Files
JNLP
Links

Einstieg

Java Web Start ist eine Technologie zur einfachen Installation von Java Programmen über das Internet. Gestartet wird die Installation über einen Hyperlink auf einer Webseite. Eine Aktualisierung der so installierten Programme auf den neuesten Stand kann ebenfalls über Java Web Start erfolgen. Über Java Web Start werden Programe aus dem Rich Client Umfeld, z.B. Swing-Anwendungen, verteilt.

Schritte zur Java Web Start Anwendung

Dich nachfolgende Aufzählung zeigt die notwendigen Schritte zur Verteilung einer Anwendung mit Hilfe von Java Web Start.

  • Entwicklung der zu verteilenden Anwedung
  • Jar-File der Anwendung erzeugen
  • Das Jar-File signieren
  • Das JNLP File
  • Ablage auf dem Server
  • Installation der Anwendung beim Client

Eine einfache Anwendung

Der erste Schritt zu einer Java Web Start Awendung liegt in der Entwicklung der zu verteilenden Anwendung. Dieser Schritt ist unterscheidet sich nicht von der normalen Anwendungsentwicklung ist ist folglich nicht Java Web Start spezifisch. In userem Beispiel ist die Anwendung ein einfaches Fenster mit einem Button zum beenden des Programms.

Bild der zu verteilenden Anwendung

Nachfolgend der Quelltext der Anwendung:

import javax.swing.*;
import java.awt.event.*;

public class SimpleApplication extends JFrame{
  private JButton terminateButton;

  public SimpleApplication(){
    super("Simple Application");
    terminateButton = new JButton("Terminate");
    getContentPane().add(terminateButton);
    pack();
    createListener();
    setVisible(true);
  }

  private void createListener(){
   addWindowListener(new WindowAdapter(){
     public void windowClosing(WindowEvent e){
        System.exit(0);
      }
    });

    terminateButton.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent e){
        System.exit(0);
      }
    });
  }

  public static void main(String[] args){
    new SimpleApplication();
  }
}
itmapa.de - X2H V 0.18

Speichern Sie die Datei unter den Namen SimpleApplication.java. Kompilieren können wir das Programm von der Kommandozeile aus mit dem Befehl:

javac SimpleApplication.java
            

Zum testen der Anwendung läßt sich folgender Befehl verwenden, worauf das Anwendungsfenster sichtbar werden sollte:

java SimpleApplication
            

Jar-File der Anwendung erzeugen

Es gibt mehrere Möglichkeiten eine ausführbare jar-Datei einer Java Anwendung zu erzeugen. Genannt seien hier

  • Zip Programme wie WinRar
  • Export Funktionalität einer IDE
  • Das Java Kommandozeilenwerkzeug jar

Verwenden wir ein zip-Programm, müssen wir zuvor noch ein "Manifest" definieren in der wir festlegen, welche Klasse die main Methode enthält. Beim export aus einer IDE wie Eclipse werden die benötigten Informationen, wie Einstiegspunkt, durch Dialoge abgefragt. In unserem Beispiel wollen wir das Java-Kommandozeilenwerkzeug jar verwenden um das ausführbare jar-File unserer Anwendung zu erstellen.

Öffnen Sie zur Erzeugung des jar-Files die Kommandozeile und wechseln Sie in das Verzeichnis der kompilierten Anwendung. Geben Sie zur Erzeugung des jar-Files folgende Anweisung ein:

jar ecvf SimpleApplication MyApplication.jar *.class
            

Durch diesen Befehl wird ein jar-File mit dem Namen MyApplication.jar mit der Startklasse SimpleApplication erzeugt. Zum testen kann das jar-File mit Hilfe folgenden Befehls von der Kommandozeile aus gestartet werden.

java -jar MyApplication.jar
            

Als Ergebnis erscheint das bekannte Anwendungsfenster auf dem Bildschirm.

Signieren des Jar-Files

Um unserer Beispielprogramm mit Java Web Start verteilen zu können müssen wir das Jar-File zunächst signieren. Die dazu benötigten Werkezeuge keytool und jarsigner sind im JDK enthalten und befinden sich im bin-Verzeichnis des JDK.

Mit dem Werkzeug keytool erzeugen wir die Signatur, mit der alle Jar-Dateien der zu verteilenden Anwendung (in unserem Beispiel nur MyApplication.jar) signiert werden müssen. Die nachfolgende Anweisung erzeugt die Signatur, welche wir in unserem Beispiel verwenden wollen:

keytool -genkey -alias myfirstwebstart
            

keytool erfragt im Anschluß das Passwort sowie weitere Informationen (wie ihr Name, der Name ihrer Organisation ...) zur Erzeugung der Signatur ab. Das erste erfragte Passwort ist das Passwort des aktuellen "keystores" und nicht der aktuellen Signatur. Ein Passwort für die aktuelle Signatur wird am Ende der Erzeugung der Signatur abgefragt. Da wir keinen speziellen "keystore" angegeben haben, wird die Signatur in der Datei (im "keystore") .keystore ihres Benutzerverzeichnises abgelegt (unter Windows XP z.B.: C:\Dokumente und Einstellungen\IhrName\.keystore).

Nachdem wir die Signatur erzeugt haben, können wir mit Hilfe des Werkzeuges jarsigner unsere Anwendung damit signieren:

jarsigner MyApplication.jar myfirstwebstart
            

JNLP

JNLP ist ein Akronym für Java Network Launching Protocol. In dieser Datei werden die zur Java Web Start Anwendung benötigten Daten untergrbracht. Nachfolgend ein Beispiel für eine JNLP Datei, die zu unserer Beispielanwendung passt. Standardmäßig enden JNLP Dateien mit der Endung .jnlp

<jnlp spec="1.0+"
  codebase="http://mydomain.xx"
  href="webstart.jnlp">
<information> 
  <title>My first Java web start</title> 
  <vendor>Me</vendor>
  <offline-allowed/> 
</information> 

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

<resources>
  <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
  <j2se version="1.6+"/>
  <jar href="MyApplication.jar" main="true"/>
</resources>
<application-desc main-class="SimpleApplication"/>
</jnlp>
itmapa.de - X2H V 0.19

Damit wir das Beispiel zum laufen bringen, muss noch die Information über Speicherort (codebase="http://mydomain.xx" ...) in der JNLP Datei an den tatsächlichen Speicherort angepasst werden.

Damit ein Anwender die Anwendung über Java Web Start starten kann, verlinken wir die JNLP - Datei in einer HTML-Seite. Sofern der Anwender den Link betätigt, wird die Anwendung über Java Web Start gestartet. Wird lediglich die JNLP-Datei im Browser angezeigt oder die Datei wird zum speichern angeboten, muss noch der Mime-Type für JNLP Dateien konfiguriert werden.

quixotic project blog
Java Web Start Tutorial

The JavaTM Tutorials
Deploying a Java Web Start Application Flagge Großbritanien

de.wikipedia.org
Java Web Start
http://de.wikipedia.org/wiki/Java_Web_Start

Mit Java Web start ausführen
http://doc.optadata.com/de/dokumentation/application/execute/webstart.html

OIO - Orientation in Objects
Einführung in JNLP und Java Web Start
http://www.oio.de/m/webstart/