Die Vorteile dieses Verfahrens bestehen u.a. darin, dass
Applikationen in signierter Form und in der jeweils neuesten Version
ausgeführt werden können. Zudem sind sie weitgehend
versionsunabhängig, werden lokal zwischengespeichert, sodass sie nicht
jedes Mal nachgeladen werden müssen und laufen in einer Umgebung ab, die
den strengen Java-Sicherheitsstandards entsprechen.
Um Java-Webstart zu nutzen muss zunächst eine beliebige Java-Applikation
hergestellt und als
*.jar-Datei gepackt werden.
Der nächste Schritt ist das Erstellen einer *.jnlp-Datei.
Das ist eine einfache XML-Datei mit der Endung *.jnlp, die dem folgenden
Beispiel folgt (gezeigt ist hier diejenige des
hiesigen Webstart-Angebots von Cent).
Gehen wir die Datei der Reihe nach durch:
- codebase definiert die URL des Ablageortes der *.jar-Datei auf dem
Server, das href-Attribut die URL der *.jnlp-Datei.
- der Bereich information speichert einige allgemeine Informationen
zum Zielprogramm. Die hier unter homepage angegebene URL kann auf eine
Webseite leiten, die weitere Informationen für interessierte Nutzer
bereitstellt.
offline-allowed bezeichnet ein Element, das festlegt, ob die
Applikation offline betrieben werden kann, damit ggfs. auf den Cache des
Webbrowsers zugegriffen werden kann.
- Der Bereich security definiert die Sicherheitseinstellungen. Die
Standardeinstellungen erlauben der geladenen Applikation keinen Zugriff auf das
Dateisystem des Client-Rechners, Netzwerkzugriffe, etc. Dies kann durch die
Eigenschaft all-permissions umgangen werden. Allerdings ist die
digitale Signatur der ausgeführten *.jar-Datei hierfür zwingend
nötig. Sie wird unten erläutert.
- resources legt fest, welche *.jar-Dateien mit dem
auszuführenden Programm geladen werden müssen und wo sie gefunden
werden können. Es muss unbedingt darauf geachtet werden, dass die
Java-Versionsangaben innerhalb einer *.jar-Angabe,
ebenso wie im einleitenden jnlp-Tag
die korrekte Syntax aufweisen. Eine Angabe von z.B. 1.6.0 führt
dazu, dass die Applikation u.U. nicht gestartet werden kann.
Weiterführende Informationen zur Syntax einer *.jnlp-Datei sind in englischer Sprache
z.B.
hier
oder
hier
zu finden.
Zur Verifizierung der ausführbaren *.jar-Datei muss
zunächst ein Schlüssel erstellt werden, mit dem in einem zweiten
Schritt die Datei signiert wird. Hierzu werden zwei Kommandozeilen-Programme
benötigt, die jedoch bereits mit dem Java-SDK mitgeliefert werden:
Keytool erstellt einmalig einen sog. Keystore im Home-Verzeichnis des
Nutzers in der Datei
.keystore, der den Schlüssel enthält und
passwortgeschützt ist. Ist der Schlüssel abgelaufen, kann die Datei
einfach gelöscht und neu angelegt werden:
# -genkey erstellt den Schlüssel
# -validity legt die Gültigkeit in Tagen fest
# -keyalg bestimmt den Verschlüsselungsalgorithmus
# -alias legt den Namen des Schlüssels fest
keytool -genkey -validity 365 -keyalg rsa -alias meinKey
Nun kann die *.jar-Datei signiert werden. Hierzu wechselt man in das Verzeichnis
mit der *.jar-Datei
und führt die Signatur mit dem
jarsigner aus:
jarsigner meineDatei.jar meinKey
Die Einbindung in die Webseite erfolgt dann durch Aufruf der *.jnlp-Datei:
<a href="pfadZurJnlpDatei.jnlp">start</a>