Release 26.2 ist das erste Release der Lobster Data Platform, das OpenJDK 21 unterstützt, und damit das Release, mit dem Sie den Wechsel vollziehen können. OpenJDK 11 wird in 26.2 übergangsweise weiterhin unterstützt, OpenJDK 21 ist die empfohlene Laufzeit-Umgebung. Sowohl viele unserer Kunden als auch wir verwenden dieses JDK: Adoptium (Eclipse Temurin®), JDK 21-LTS.
Was sich ändert
Im Folgenden finden Sie eine Zusammenfassung der Änderungen, die mit Java 21 eingeführt wurden oder bereits mit Java 17 in Kraft traten. Es ist dabei zu beachten, dass nicht alle diese Änderungen für Sie und die Lobster Data Platform relevant sein werden.
Zeichenkodierung
Die Standard-Kodierung ist jetzt UTF-8, auch unter Windows, wo bisher Cp1252 verwendet wurde. Anwendungen, die Dateien ohne explizite Kodierung lesen oder schreiben, können sich anders verhalten. Prüfen Sie insbesondere Logdateien, CSV-Exporte und Datenbankimporte.
Rückfallmöglichkeit:
-Dfile.encoding=WINDOWS-1252als JVM-Parameter
Zugriff auf interne APIs
Die Option --illegal-access existiert nicht mehr. Frameworks oder Libraries, die auf interne Java-APIs zugreifen, brechen ab. Sie können das durch gezielte --add-opens-Einträge in Ihren Startskripten nachbilden.
TLS-Verbindungen
TLS 1.0 und 1.1 sind standardmäßig deaktiviert. Verbindungen zu Altsystemen (z. B. Legacy-Datenbanken, ältere LDAP-Server) schlagen fehl.
Sicherheitshinweis
Reaktivierung in
conf/security/java.securityunterjdk.tls.disabledAlgorithms– nur als Übergangslösung.
Siehe TLS-Java-Änderungen beachten.
Tool | Nutzen |
|---|---|
| Erzeugt native Installer (.msi, .deb, .rpm) |
| Einfacher HTTP-Server für schnelle Tests |
Empfohlene Installationsweise: JDK entpacken, nicht installieren
Wir empfehlen, das OpenJDK nicht über den Windows-Installer oder den Paketmanager Ihres Betriebssystems zu installieren, sondern das ZIP- bzw. Tarball-Archiv (z. B. von Adoptium) in ein eigenes Verzeichnis zu entpacken. Gründe:
Entkoppelt von automatischen OS-Updates – Ein Betriebs-System- oder Paket-Manager-Update kann die JDK-Version nicht ohne Ihr Wissen ändern.
Kontrollierte Erneuerung – Jeder JDK-Wechsel wird bewusst durchgeführt. Sie können ihn vorher in Staging prüfen.
Schneller Rollback – Funktioniert eine neue Java-Version nicht, wechseln Sie in den Lobster-Start-Skripten oder in
platform.jsonden Pfad zurück auf das zuvor entpackte JDK und starten neu.
Die Auswahl der aktiven JVM erfolgt ausschließlich über die Lobster-Start-Skripte bzw. die Wrapper-Konfiguration (JAVA_HOME in hubenv.bat / hub.sh oder der JDK-Pfad in platform.json ab 26.2). Eine systemweite Java-Registrierung ist für den Betrieb der Lobster Data Platform nicht erforderlich.
Schritt für Schritt: Upgrade durchführen
JDK 21 entpacken: Entpacken Sie das JDK-21-Archiv in ein eigenes Verzeichnis (z. B.
C:\java\jdk-21.x.xbzw./opt/java/jdk-21.x.x) parallel zum bestehenden JDK 11. Das bisherige JDK 11 bleibt als Rollback-Option erhalten.JAVA_HOMEundPATHauf das neue Verzeichnis umstellen.Anwendung im Testbetrieb starten und auf Encoding-Probleme und TLS-Fehler achten.
JDK 11 erst deinstallieren, wenn alles stabil läuft.
SecurityManager unter Java 21
Beim Start der Lobster Data Platform unter Java 21 erscheint folgende Meldung in logs/wrapper.log:
*** INFO: SecurityManager could not be installed. See documentation for more details ***Der Security-Manager von Java wurde von Oracle als veraltet eingestuft. Er steht unter Java 21 nicht mehr zur Verfügung. Die JVM lehnt den Installations-Aufruf ab. Die Plattform startet und läuft wie gewohnt.
Was sich durch den Wegfall des SecurityManagers ändert
Innerhalb der Lobster Data Platform übernahm der SecurityManager zwei Aufgaben:
System.exit()-Interception, die verhinderte, dass Libraries die JVM abrupt beenden.Runtime.exec()-Interception, die verhinderte, dass Libraries externe Prozesse starten.
Beide Schutzfunktionen sind unter Java 21 nicht mehr aktiv.
Wie Sicherheit jetzt gewährleistet wird
Diese Schutzfunktionen liegen jetzt in der Verantwortung des Betriebssystems oder der Container-Laufzeit. Verwenden Sie OS-seitige Prozess-Kontrollen oder Container-Sicherheits-Richtlinien, um den Prozessabbruch und das Starten externer Prozesse einzuschränken. Beispiele hierfür sind Linux-seccomp-Profile oder Kubernetes-Security-Kontexte.
Keine anderen Sicherheits-Mechanismen der Plattform stützten sich auf den SecurityManager. Die Sandbox-Funktionen, die er ursprünglich bot, waren nicht im Einsatz.