Auf ein Neues: AdoptOpenJDK vs. ZuluFX

16.01.2020

Torsten von Team Vegas nimmt uns mit auf die Suche nach einem kompatiblen Java für den Sophora DeskClient.

Vor einem Jahr haben wir über Oracle JDK und OpenJDK diskutiert. Das Thema lässt euch nicht los – aktuell geht es um AdoptOpenJDK und ZuluFX. Was ist der Hintergrund?

Wir liefern ja bereits seit längerem den Sophora DeskClient mit Oracle JDK aus. Da Oracle inzwischen das Lizenzmodell geändert hat, haben wir nach OpenJDKs gesucht, die wir alternativ nutzen können. Dabei sind wir zunächst auf AdoptOpenJDK gestoßen. Allerdings gab es ein Problem: Ab DeskClient 3.0 haben wir den JxBrowser integriert, welcher JavaFX benötigt. Das ist in AdoptOpenJDK allerdings nicht enthalten. Deshalb hat diese Option die Anforderung nicht mehr ausreichend erfüllt. Wir brauchten also eine andere Alternative. Die haben wir mit ZuluFX gefunden. Da es für den DeskClient sogar mehr Module als nötig enthält und wir nicht unnötig Speicherplatz verbrauchen wollen, haben wir es sogar etwas ausgedünnt.

Welche OpenJDKs habt ihr euch sonst noch angesehen?  

Wir haben uns außer Zulu noch Oracle OpenJDK, Adopt und BellSoft angeschaut. Obwohl sich in einer idealen Welt diese Open JDKs nicht voneinander unterscheiden sollten, gibt es natürlich Unterschiede. Und ZuluFX 11 eignet sich für unsere Zwecke am besten.

Wir hatten außerdem das Ziel, dass der DeskClient 3.0 sowohl mit Java 8 als auch Java 11 funktionieren sollte, wobei wir Java 11 mitliefern wollten. Seit Oracle JDK 9 wurde Java in verschiedene Module aufgeteilt und das JavaFX komplett ausgegliedert. Der Vorteil von ZuluFX 11 ist, dass es dem Oracle JDK 8 von den Modulen her nahezu gleicht und JavaFX enthält. Bei den anderen OpenJDKs hätten wir das selbst einbinden müssen. Außerdem ist ZuluFX auch in 32bit verfügbar, was für einige unserer Kunden wichtig war. Andere OpenJDKs werden nur noch in 64bit angeboten.

Haben Sophora-Nutzende weiterhin die freie Auswahl bei den JDKs?

Unsere Kundinnen und Kunden können immer noch das offizielle Java Oracle verwenden, z.B. wenn es bereits installiert ist. Auch die Verwendung eines anderen OpenJDKs ist möglich, sofern alle benötigten Module und JavaFX eingebunden sind. Der DeskClient 3.0 funktioniert sowohl mit Java 8 als auch mit Java 11. Wir wollen erst in der nächsten Version mit DeskClient 4.0 Java 11 voraussetzen, damit die Nutzer Zeit für die Umstellung haben. Wenn wir den aktuellen DeskClient 3.0 mit Java ausliefern, enthält er bereits ZuluFX 11.

JavaFX war im letzten Jahr noch kein Thema, das ist also DIE große Neuerung für den DeskClient, oder?

Genau, das kommt, weil wir den JxBrowser jetzt in den DeskClient integriert haben. Früher wurde der SWT-Browser (Standard Widget Toolkit) verwendet. Das ist zwar immer noch als Fallback so, falls JavaFX nicht vorhanden ist, es ist aber nicht mehr der Standard. Der Grund ist, dass der SWT-Browser auf einem alten Internet Explorer basiert, der in der Vergangenheit einige Probleme bereitet hat: In Verbindung mit modernen Webseiten wurde die integrierte Vorschau im DeskClient nicht richtig dargestellt. Das wollten wir verändern.  Deshalb haben wir uns für den JxBrowser entschieden und die Browser-Implementation im DeskClient ausgetauscht. Das führt dazu, dass wir JavaFX unter der Haube mitverwenden. Der JxBrowser basiert auf der Chromium Engine – und ist damit quasi das Neueste vom Neuesten.

Deine Botschaft für subshell Kundinnen und Kunden?

Keine Angst vor Erneuerungen zu haben! Wir haben viel Energie darauf verwendet, auch das Updaten der Java-Version über die Updatesite zu ermöglichen. Das ging vorher nicht. Damit ist das Ganze nun kundenfreundlicher. Dadurch, dass wir das verwendete Java auf diese Weise festlegen können, tragen wir die Verantwortung für das Zusammenspiel von DeskClient und seiner Java-Laufzeitumgebung.

Autorenprofil Torsten

Torsten