# Java Web Start

Java Web Start oder Oracle Web Start ist ein Tool zur Übertragung von Java-Anwendungen über das Internet und zum Start mit nur einem Klick. Im Unterschied zu Java-Applets benötigen Java-Web-Start-Anwendungen keinen Browser, um ablaufen zu können. Das Tool basiert auf dem JNLP-Standard.
Der Hersteller Oracle hat Web Start abgekündigt: Web Start ist seit der Java-Long-Term-Support-Version 11 nicht mehr enthalten. Da Web Start nie als Open Source in OpenJDK entwickelt wurde, sondern immer als Closed-Source-Software von Oracle beim Bau ihrer Java-Distribution hinzugefügt wurde, gab es lange auch keine alternative Distribution zur Nutzung von Web Start. Die letzte LTS-Version mit Web Start ist die Java 8 von Oracle. Oracle empfiehlt das nicht direkt vergleichbare Paketierwerkzeug jlink als Ersatz. Für viele Benutzer ist jlink allerdings kein ausreichender Ersatz, da es z. B. kein jlink für Java in der Version 8 gibt und auch Features wie Update-Funktionalität fehlen. Aus diesem Grund haben sich verschiedene Firmen und Organisationen wie AdoptOpenJDK oder RedHat unter der Führung der Karakun AG zusammengetan um eine OpenSource-Lösung als Ersatz für Java Web Start zu liefern.
Bei jedem Start einer Java-Web-Start-Anwendung kann überprüft werden, ob neuere Komponenten vorliegen und ob im Zielrechner ein aktuelles Java-Laufzeitsystem vorliegt. So kann der Anwender stets mit der aktuellen vom Programm-Autor ausgelieferten Version arbeiten. Eine einmal heruntergeladene Version einer Anwendung bleibt solange in einem Zwischenspeicher (engl. Cache) auf der Festplatte des Clients, bis bei der Prüfung erkannt wird, dass eine neue Version vorliegt und diese geladen werden muss. Somit werden unnötige Downloads verhindert, und es wird trotzdem sichergestellt, dass immer die aktuelle Programmversion läuft.
Voraussetzung für die Ausführung von Java-Web-Start-Anwendungen ist, dass
* der Entwickler das Programm auf einem Server zum Download anbietet und eine spezielle XML-Datei bereitstellt (mit der Endung „.jnlp“), in der die einzelnen Komponenten der Anwendung beschrieben sind.
* der Webserver, auf dem die Java-Anwendung bereitgestellt wird, den MIME-Type application/x-java-jnlp-file kennt.
* auf dem Client das Java Runtime Environment installiert ist (JRE enthält ab Version 1.4.2 Java Web Start), da die Java-Anwendung mit Hilfe der lokalen Java VM ausgeführt wird.

## Nachfolger von Java Web Start

Die AdoptOpenJDK-Community hat mit Unterstützung der Firmen RedHat und Karakun begonnen, eine Open-Source-Alternative für Java Web Start zu entwickeln und bereitzustellen. Das ganze wird in GitHub unter der AdoptOpenJDK-Organisation entwickelt. Die Entwicklung basiert auf IcedTea-Web, welches als Bestandteil von IcedTea hauptsächlich von RedHat entwickelt wurde. Innerhalb des AdoptOpenJDK-Projekts wird hierbei versucht, die Qualität von IcedTea-Web zu erhöhen, Fehler zu entfernen und nicht implementierte Features des JNLP-Standards bzw. von Oracle Web Start nachzureichen.
Basierend auf IcedTea-Web wurde von der Firma Karakun das Open-Source-Anwendung OpenWebStart bereitgestellt. Dieses übernimmt die Funktionalität von IcedTea-Web und erweitert sie mit vielen Nativen und erweiterten Features. Darüber hinaus bietet OpenWebStart native Installer für macOS, Windows und Linux. Auch dieses Tool entstand mit der Unterstützung von RedHat und AdoptOpenJDK.

## Java Network Launching Protocol (JNLP)

Das Java Network Launching Protocol (JNLP) benötigt für jede Anwendung eine Konfigurationsdatei im XML-Format. Diese JNLP-Dateien enthalten Informationen zum Ablageort von JAR-Dateien, den Namen der Hauptklasse einer Anwendung und weitere Parameter für das aufzurufende Programm. Ein konfigurierter Webbrowser übergibt JNLP-Dateien an die Java-Laufzeitumgebung, die daraufhin die Anwendung auf den PC des Anwenders herunterlädt und startet. JNLP wurde im Java Community Process als JSR-56 entwickelt.