Migration

Umstellung von Java-Applets auf Plug-in-freie Java-Technologie

Wolfgang Weigend

(c) Shutterstock / vchal

Da verschiedene Browser-Hersteller den Support von bekannten Plug-ins wie Flash, Silverlight und Java stetig reduzieren oder gänzlich entfernen, sehen sich die auf das Java-Plug-in angewiesenen Anwendungsentwickler gezwungen, nach Alternativen zu suchen. Java-Entwickler, die zur Zeit auf das Java-Plug-in setzen, sollten einen Wechsel von Java Applets zur Plug-in-freien Java-Web-Start-Technologie in Erwägung ziehen.

Die Unterstützung von Java in Browsern ist nur möglich, solange die nötigen Standard-basierten Plug-ins in den Browsern auch unterstützt werden. Gegen Ende 2015 hatten viele Browser-Hersteller die Unterstützung der Plug-ins bereits beendet oder entsprechende Pläne angekündigt, während einige Unternehmen firmeneigene, browserspezifische Extension-APIs vorstellten. Damit wird eine Weiterentwicklung von Oracle überflüssig gemacht, und diese Entscheidung wurde in erster Linie durch die Web-Browser-Hersteller getroffen. Aus diesen Gründen plant Oracle, das Java Browser-Plug-in ab JDK 9 als „deprecated“ einzustufen.

Die Plug-in-Technologie wird aus dem Oracle Java Development Kit (JDK) sowie dem Java Runtime Enviroment (JRE) in einem zukünftigen Java Release entfernt werden. Java-Web-Start-Anwendungen sind auf das Browser-Plugin jedoch nicht angewiesen und werden von den Änderungen nicht betroffen sein.

Perspektiven von Browser-Plug-ins

Der Aufstieg von Java begann vor 20 Jahren mit einem tanzenden Duke Applet des HotJava-Browsers, lange bevor der Microsoft Internet Explorer, Mozilla Firefox oder Google Chrome veröffentlicht wurden. Applets ermöglichten durch ein Browser-Plug-in erweiterte Entwicklungsfunktionalitäten und eine zentralisierte Verteilung der Anwendungen ohne lokale Installation oder Updates – in einer Zeit, in der die Browser-Möglichkeiten noch sehr eingeschränkt waren. Der Browser „Netscape Navigator“ etablierte mit dem Netscape Plug-in API (NPAPI) ein standardisiertes Plug-in-Modell, das wiederum von vielen anderen Browsern übernommen wurde und es erlaubte, die Browser-Möglichkeiten bis hin zu Cross-Platform- und Cross-Browser-Funktionalitäten zu erweitern.

Während sich Java zu einer der führenden Entwicklungsplattformen herausbildete, entwickelte sich die Heimat der Applets – der Web-Browser – gleichermaßen weiter. Die steigende Nutzung von Web-Browsern auf mobilen Geräten, meistens ohne Plug-in-Support, führte dazu, dass die Browser-Hersteller versuchten, den Standard-basierten Plug-in-Support einzuschränken oder gänzlich zu entfernen, wobei sie gleichzeitig versuchten, die Funktionalität für Desktop- und mobile Versionen zu vereinheitlichen. Das Oracle JRE kann Browser-Applets nur dann unterstützen, solange die Browser-Firmen ein Cross-Browser Standard-Plugin-API (z.B. NPAPI) aktiv unterstützen.

Oracle plant keine zusätzlichen Browser-abhängigen Plug-ins, denn für solche Plug-ins müssten Browser-abhängige Applets für jeden zu unterstützenden Browser neu entwickelt werden. Darüber hinaus wäre es Oracle ohne Cross-Browser API nur möglich, eine Teilmenge der benötigten Funktionalität, von Browser zu Browser variierend, anzubieten, was wiederum die Anwendungsentwickler und die Nutzer gleichermaßen treffen würde.

applets2

Bild 1: Java Control Panel mit aktiviertem Java im Browser

Nutzer, die mehr über die Ankündigungen der Browser-Hersteller bzgl. Plug-in-Technologien erfahren möchten, sollten die Browser-Firmen direkt kontaktieren. Java-Entwickler sollten sich unterdessen mit Plug-in-freien Technologien beschäftigen, die nicht auf Browser-Plug-ins angewiesen sind: Java Web Start ist eine dieser Technologien.

Java Web Start

Java Web Start wurde 2001 in das Oracle JRE eingebunden und startet automatisch, sobald eine Java-Anwendung für Java Web Start zum ersten Mal heruntergeladen wird. Die Umstellung eines Applets zu einer Java-Web-Start-Anwendung ermöglicht es, die Anwendung ohne Web-Browser zu aktualisieren und zu starten (Bild 2). Desktopverknüpfungen können die Anwendung ebenfalls starten und erzeugen somit die gleiche Benutzerdarstellung wie eine native Anwendung.

Applets3

Bild 2: Der Java Cache Viewer zeigt die gecachten Java Web Start Anwendungen.

Detailierte Anleitungen zur Migration von Java Applets zu Java Web Start sind als Teil des Applet Entwicklungs-Guides verfügbar.

Alternativen

Sollte ein Applet nicht zu einer Java-Web-Start-Anwendung konvertierbar sein, können Entwickler alternative Möglichkeiten betrachten.

Applets4

Bild 3: Beispiel einer angepassten Darstellung eines Installationspakets für OS X

Native Windows / OS X / Linux-Installationsprogramme

Das Javapackager-Kommando ermöglicht Entwicklern die Erstellung nativer Standalone-Installationspakete auf Windows, OS X und Linux, die keine eigenständige JRE-Installation benötigen.

Diese Option ist für Desktop-Anwendungen am besten geeignet, bei denen der Nutzer kein eigenes JRE installiert hat und nur das Programm benötigt. Beispielsweise können so native Standalone-Installationspakete für Anwendungen mittels JavaFX oder Swing User-Interface-Technologien geschaffen werden (Bild 3). Doch für Server-basierte Anwendungen, bei denen der Administrator die vollständige Systemkontrolle benötigt, kann das ungeeignet sein.

applets5

Bild 4: Eine JavaFX WebView-Darstellung in der Ensemble-Anwendung

Invertierte Browser-Kontrolle

JavaFX enthält ein Feature namens WebView, das es Anwendungen ermöglicht, eine eingebundene WebKit-Version zum Rendern von HTML5-Inhalten zu verwenden (Bild 4). Entwickler können somit Anwendungen bauen, die durch diesen Browser auf Remote-Anwendungen zugreifen.

Beispielsweise könnten Entwickler einen Mini-Web-Browser programmieren, der ihren Nutzern den Zugang zu Remote-Anwendungen erleichtert. Das WebFX-Projekt auf GitHub bietet dafür einen Prototyp an.

Applets erkennen

Große Organisationen verwenden oftmals viele Anwendungen gleichzeitig und können sich nicht sicher sein, welche davon Applets sind, die tatsächlich umgestellt werden sollten. Systemadministratoren können dafür das Java-Usage-Tracking Feature der Java Advanced Management Console (Bild 5) nutzen und damit die passenden Anwendungen identifizieren.

applets6

Bild 5: Java Advanced Management Console

Bei Firmen, die 3’rd-Party-Software nutzen und deployen, können Systemadministratoren die Java Advanced Management Console verwenden, um die Java-Nutzung in ihrer Firma nachzuvollziehen und dabei zwischen Applet, Web Start und anderen Java-Anwendungsformen zu unterscheiden. Mittels Java-Usage-Tracking lässt sich feststellen, welche Java-Versionen von welchen Anwendungen verwendet werden. Zudem ermöglicht es die Erstellung von installationsbezogenen Regelgruppen (Deployment-Rule-Sets) zur Verwaltung und Steuerung von unterschiedlichen Major-Versionen.

Verwandte Themen:

Geschrieben von
Wolfgang Weigend
Wolfgang Weigend
Wolfgang Weigend arbeitet als Sen. Leitender Systemberater bei der Oracle Deutschland B.V. & Co. KG. Er beschäftigt sich mit Java-Technologie und -Architektur für unternehmensweite Anwendungsentwicklung.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.