Aktualisieren Sie Ihre Anwendungen auf die neueste unterstützte Laufzeitversion, um weiterhin Sicherheitsupdates zu erhalten und Anspruch auf technischen Support zu haben.
Das Upgradeprozess einer vorhandenen Anwendung hängt von der Laufzeitversion ab, die Ihre Anwendung verwendet:
Java 8: Migrieren Sie Ihre Anwendung zur neuesten unterstützten Java-Version. Java 8 hat am 31. Januar 2024 das Ende des Supports erreicht und wird am 31. Januar 2026 eingestellt. Nach der Einstellung können Sie keine Java 8-Anwendungen mehr bereitstellen, auch wenn Ihre Organisation zuvor eine Organisationsrichtlinie verwendet hat, um Bereitstellungen von Legacy-Laufzeiten wieder zu aktivieren. Ihre vorhandenen Java 8-Anwendungen werden nach dem Datum der Einstellung weiterhin ausgeführt und erhalten Traffic.
Java 11: Aktualisieren Sie Ihre Anwendung auf die neueste unterstützte Java-Version. Java 11 hat am 31. Oktober 2024 das Ende des Supports erreicht und wird am 31. Oktober 2025 eingestellt. Nach der Einstellung können Sie keine Java 11-Anwendungen mehr bereitstellen. Ihre vorhandenen Java 11-Anwendungen werden nach dem Datum der Einstellung weiterhin ausgeführt und erhalten Traffic.
Unterstützte Laufzeiten der zweiten Generation (Java 17 und Java 21):
App Engine unterstützt Java-Laufzeitversionen der zweiten Generation wie Java 17 und Java 21. So führen Sie ein Upgrade auf Java 25 (Vorschau) durch:
Aktualisieren Sie die Datei
app.yaml, indem Sie eine Java-Version angeben, mit der Ihre App ausgeführt werden soll. Beispiel:runtime: javaVERSIONDabei ist VERSION die
MAJOR-Versionsnummer. Wenn Sie beispielsweise die neueste Java-Version (Java 25 [Preview]) verwenden möchten, geben Sie25an. Weitere Informationen finden Sie in der Java-Laufzeitübersicht.Wenn Sie gebündelte Legacy-Dienste verwenden, müssen Sie Ihre Anwendungen aktualisieren, dass sie auf einem der Folgenden ausgeführt werden:
Java Enterprise Edition 11 (E11): EE 11 unterstützt keine
javax.servlet.*-APIs und erfordert die Aktualisierung Ihrer Anwendungen und Drittanbieterabhängigkeiten, um neuere Java-Artefakte wie den NamespaceJakartazu verwenden. Java 25 (Vorschau) wird standardmäßig auf EE 11 ausgeführt und unterstützt EE 10 nicht.Java Enterprise Edition 8 (EE 8): Mit Java EE 8 können Sie
javax.servlet.*APIs verwenden, müssen aber geringfügige Konfigurationsänderungen an Ihrerappengine-web.xml-Datei vornehmen.
Upgrade auf eine unterstützte Java-Version für gebündelte Legacy-Dienste
Java-Laufzeitkompatibilität
In der folgenden Tabelle sehen Sie, welche Java-Versionen mit Ihren Servlet-Versionen kompatibel sind. Weitere Informationen zu den Einstiegspunkt-Features, Konfigurationen von Systemeigenschaften, der resultierenden Jetty-Unterstützung und kompatiblen EE-Versionen finden Sie unter Entry Point Features.
| Enterprise Edition (EE) | Java-Version | Servlet | Kompatibilität |
|---|---|---|---|
| EE7 | 11 | 2.5 oder 3.1 | Für EE7 gibt es keinen Community-Support. Java 11 hat das Ende des Supports erreicht. Wir empfehlen, Ihre App auf die aktuelle Version von Java zu aktualisieren. |
| EE7 | 17 | 2.5 oder höher | Für EE7 gibt es keinen Community-Support. Wir empfehlen, Ihre App auf EE 8 und höhere Versionen zu aktualisieren. |
| EE 8 | 17/21/25 (Vorschau) | 2.5 und höher | Java EE 8 ist abwärtskompatibel mit Java EE6 und höher. Weitere Informationen finden Sie unter Java in einer kompatiblen Enterprise Edition-Version (EE) aktualisieren. |
| EE 10 | 17/21 | 6.0 (Standard, empfohlen) Java 21 ist standardmäßig für die Ausführung von EE 10 konfiguriert. | Wenn Sie Java EE 10 verwenden möchten, müssen Sie die Servlets und Abhängigkeiten Ihrer Anwendung aktualisieren, damit sie den Namespace Jakarta enthalten. Weitere Informationen finden Sie unter Java in einer kompatiblen Enterprise Edition-Version (EE) aktualisieren. Java 25 (Vorschau) kann nicht auf EE10 verwendet werden. |
| EE 11 | 25 | 6.1 (Standard, empfohlen) Java 25 (Vorschau) ist standardmäßig für die Ausführung von EE 11 konfiguriert. | Wenn Sie Java EE 11 verwenden möchten, aktualisieren Sie die Servlets und Abhängigkeiten Ihrer Anwendung, um den Jakarta-Namespace einzuschließen. Weitere Informationen finden Sie unter Java in einer kompatiblen Enterprise Edition-Version (EE) aktualisieren. |
Java in einer kompatiblen Enterprise Edition-Version (EE) aktualisieren
Wenn Sie Java 25 (Vorabversion) in Enterprise Edition 11 (EE 11) oder Java 21 in Enterprise Edition 10 (EE 10) verwenden möchten, aktualisieren Sie die Anwendungs-Servlets und ‑Abhängigkeiten in Ihren Maven- und Gradle-Dateien, um den Jakarta-Namespace einzuschließen:
Java 25 (Vorschau, EE 11)
So verwenden Sie Java 25 (Vorschau) in Enterprise Edition 11 (EE 11):
Ändern Sie die Versionsnummer in der Konfigurationsdatei
web.xmlinversion=6.1. Beispiel:<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_1.xsd" version="6.1"> ... </web-app>Benennen Sie die Servlets und Abhängigkeiten Ihrer Anwendung von
javax.servlet.*injakarta.servlet.*um:import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.Cookie; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; @WebServlet(name = "viewer", urlPatterns = {"/view"}) public class MyServlet extends HttpServlet { ......Aktualisieren Sie je nach
Jakarta-Namespace die verbleibenden Anwendungs-Drittanbieter-Abhängigkeiten auf neuere Java-Artefakte.Fügen Sie der Datei
appengine-web.xmldas folgende Systemattribut hinzu:<?xml version="1.0" encoding="utf-8"?> <appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> <runtime>java25</runtime> <system-properties> <property name="appengine.use.EE11" value="true"/> </system-properties> <app-engine-apis>true</app-engine-apis> </appengine-web-app>Optional: Java 25 unterstützt virtuelle Threads. Um virtuelle Threads zu aktivieren, fügen Sie das Attribut
appengine.use.virtualthreadsin der Dateiappengine-web.xmlinnerhalb des Tagssystem-propertieshinzu.
Java 21 (EE10)
So verwenden Sie Java 21 in Enterprise Edition 10 (EE 10):
Ändern Sie die Versionsnummer in der Konfigurationsdatei
web.xmlinversion=6.0. Beispiel:<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd" version="6.0"> ... </web-app>Benennen Sie die Servlets und Abhängigkeiten Ihrer Anwendung von
javax.servlet.*injakarta.servlet.*um:import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.Cookie; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; @WebServlet(name = "viewer", urlPatterns = {"/view"}) public class MyServlet extends HttpServlet { ......Aktualisieren Sie je nach
Jakarta-Namespace die verbleibenden Anwendungs-Drittanbieter-Abhängigkeiten auf neuere Java-Artefakte.Fügen Sie der Datei
appengine-web.xmldas folgende Systemattribut hinzu:<?xml version="1.0" encoding="utf-8"?> <appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> <runtime>java21</runtime> <!-- or java17 --> <system-properties> <property name="appengine.use.EE10" value="true"/> </system-properties> <app-engine-apis>true</app-engine-apis> </appengine-web-app>Optional: Java 21 unterstützt virtuelle Threads. Um virtuelle Threads zu aktivieren, fügen Sie das Attribut
appengine.use.virtualthreadsin der Dateiappengine-web.xmlinnerhalb des Tagssystem-propertieshinzu.
Java 17 und höher (EE 8)
javax.servlet.*-APIs in Java EE 8 verwenden, ohne dass größere Änderungen an der Anwendungskonfiguration erforderlich sind. EE 8 bietet Abwärtskompatibilität für Java EE 6 und höher.
Zur Ausführung Ihrer Anwendungen auf Java EE 8 müssen Sie ein neues system-properties-Tag in Ihrer appengine-web.xml-Datei mit der nicht standardmäßigen app.engine.use.EE8-Konfiguration deklarieren:
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<runtime>java17</runtime>
<system-properties>
<property name="appengine.use.EE8" value="true"/>
</system-properties>
<app-engine-apis>true</app-engine-apis>
</appengine-web-app>
Optional: Java-Version 21 und höher unterstützt virtuelle Threads. Wenn Sie virtuelle Threads aktivieren möchten, fügen Sie dem Tag system-properties die Eigenschaft appengine.use.virtualthreads hinzu. Beispiel:
<property name="appengine.use.virtualthreads" value="true"/>