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.
Dich nachfolgende Aufzählung zeigt die notwendigen Schritte zur Verteilung einer Anwendung mit Hilfe von Java Web Start.
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.
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(); } }
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
Es gibt mehrere Möglichkeiten eine ausführbare jar-Datei einer Java Anwendung zu erzeugen. Genannt seien hier
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.
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 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>
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
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/