Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Vous devez mettre à niveau vos applications vers la dernière version d'exécution compatible pour continuer à recevoir les mises à jour de sécurité et bénéficier de l'assistance technique.
Le processus de mise à niveau d'une application existante dépend de la version d'exécution actuellement utilisée par votre application :
Java 8 : vous devez migrer votre application vers la dernière version compatible de Java. Java 8 n'est plus compatible depuis le 31 janvier 2024. Vos applications Java 8 existantes continueront à fonctionner et à recevoir du trafic. Toutefois, vous ne pourrez pas déployer de nouvelles applications ou mettre à jour celles que vous possédez déjà qui utilisent des environnements d'exécution après leur date de fin de prise en charge.
Environnements d'exécution Java de deuxième génération (après fin de compatibilité): pour passer à une version compatible de Java, procédez comme suit:
Mettez à jour le fichier app.yaml en spécifiant la version de Java que vous souhaitez que votre application exécute. Exemple :
runtime:javaVERSION
Où VERSION est le numéro de version de MAJOR.
Par exemple, pour utiliser la dernière version de Java, Java 21, spécifiez 21.
Pour en savoir plus, consultez la présentation de l'environnement d'exécution Java.
Si vous utilisez d'anciens services groupés, vous devez mettre à jour vos applications pour qu'elles s'exécutent sur l'une des versions suivantes :
Java Enterprise Edition 10 (EE10 – par défaut, recommandé): Java EE10 n'est pas compatible avec les API javax.servlet.* et vous oblige à mettre à jour vos applications et vos dépendances tierces pour qu'elles utilisent les artefacts Java les plus récents comme l'espace de noms Jakarta.
Java Enterprise Edition 8 (EE8): Java EE8 vous permet d'utiliser les API javax.servlet.*, mais vous devez apporter des modifications mineures à la configuration de votre fichier appengine-web.xml.
App Engine est compatible avec cette version. Pour passer à la dernière version compatible, procédez comme suit:
Mettez à jour le fichier app.yaml en spécifiant la version de Java que vous souhaitez que votre application exécute. Exemple :
runtime:javaVERSION
Où VERSION est le numéro de version de MAJOR.
Par exemple, pour utiliser la dernière version de Java, Java 21, spécifiez 21.
Pour en savoir plus, consultez la présentation de l'environnement d'exécution Java.
Si vous utilisez d'anciens services groupés, vous devez mettre à jour vos applications pour qu'elles s'exécutent sur l'une des versions suivantes :
Java Enterprise Edition 10 (EE10 – par défaut, recommandé): Java EE10 n'est pas compatible avec les API javax.servlet.* et vous oblige à mettre à jour vos applications et vos dépendances tierces pour qu'elles utilisent les artefacts Java les plus récents comme l'espace de noms Jakarta.
Java Enterprise Edition 8 (EE8): Java EE8 vous permet d'utiliser les API javax.servlet.*, mais vous devez apporter des modifications mineures à la configuration de votre fichier appengine-web.xml.
Passer à Java 21 pour les anciens services groupés
Compatibilité avec l'environnement d'exécution Java
Reportez-vous au tableau suivant pour savoir quelles versions de Java sont compatibles avec vos versions de servlet:
Enterprise Edition (EE)
Version Java compatible
Servlet
Compatibilité
EE7
11
2.5 ou 3.1
La communauté ne propose aucune assistance pour EE7. Java 11 n'est plus compatible. Nous vous recommandons de mettre à niveau votre application pour utiliser la dernière version de Java.
EE7
17
2.5 ou version ultérieure
La communauté ne propose aucune assistance pour EE7. Nous vous recommandons de mettre à niveau votre application pour utiliser EE8.
EE8
17/21
2.5 et versions ultérieures
Java EE8 est rétrocompatible avec Java EE6 et les versions ultérieures. Pour en savoir plus, consultez Passer à Java 21 sur EE8.
EE10
17/21
6.0 (recommandée). Java 21 est configuré pour exécuter EE10 par défaut.
Pour utiliser Java EE10, vous devez mettre à jour les servlets et les dépendances de votre application afin d'inclure l'espace de noms Jakarta. Pour en savoir plus, consultez l'article Mettre à niveau Java 21 sur EE10.
Passer à Java 21 sur EE10
Pour utiliser Java 21 sur Enterprise Edition 10 (EE10), vous devez mettre à niveau les servlets et les dépendances de votre application dans vos fichiers Maven et Gradle pour inclure l'espace de noms Jakarta :
Remplacez le numéro de version dans le fichier de configuration web.xml par version=6.0. Exemple :
Facultatif : Java 21 est compatible avec les threads virtuels. Pour activer les threads virtuels, ajoutez la propriété appengine.use.virtualthreads dans la balise system-properties de votre fichier appengine-web.xml.
Mettre à niveau vers Java 17 ou 21 sur EE8
Vous pouvez continuer à utiliser les API javax.servlet.* sur Java EE8 sans modifier la configuration majeure de l'application, car EE8 offre une rétrocompatibilité pour Java EE6 et versions ultérieures. Pour exécuter vos applications sur Java EE8, vous devez déclarer un nouveau tag system-properties dans votre fichier appengine-web.xml avec la configuration app.engine.use.EE8 non définie par défaut :
Facultatif : Java 21 est compatible avec les threads virtuels. Pour activer les threads virtuels, vous devez ajouter la propriété appengine.use.virtualthreads dans la balise system-properties. Exemple :
<property name="appengine.use.virtualthreads" value="true"/>
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/04 (UTC)."],[[["\u003cp\u003eApplications must be upgraded to the latest supported Java runtime version to receive security updates and technical support.\u003c/p\u003e\n"],["\u003cp\u003eJava 8 applications have reached end of support and while they will continue to run, new deployments or updates to Java 8 applications are not permitted.\u003c/p\u003e\n"],["\u003cp\u003eUpgrading to a supported Java version involves updating the \u003ccode\u003eapp.yaml\u003c/code\u003e file to specify the desired Java version, such as Java 21, by using the \u003ccode\u003eruntime: javaVERSION\u003c/code\u003e configuration.\u003c/p\u003e\n"],["\u003cp\u003eIf using legacy bundled services, applications must be upgraded to either Java Enterprise Edition 10 (EE10), which requires using the \u003ccode\u003eJakarta\u003c/code\u003e namespace, or Java Enterprise Edition 8 (EE8), which requires minor \u003ccode\u003eappengine-web.xml\u003c/code\u003e configuration changes to use \u003ccode\u003ejavax.servlet.*\u003c/code\u003e APIs.\u003c/p\u003e\n"],["\u003cp\u003eJava 21 supports virtual threads, which can be enabled by adding the \u003ccode\u003eappengine.use.virtualthreads\u003c/code\u003e property in the \u003ccode\u003eappengine-web.xml\u003c/code\u003e file.\u003c/p\u003e\n"]]],[],null,["# Upgrade an existing application\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\nYou must upgrade your applications to the [latest supported runtime version](/appengine/docs/standard/lifecycle/support-schedule#java) to continue receiving security updates\nand be eligible for technical support.\n\nThe process of upgrading an existing app depends on the runtime version that\nyour app currently uses:\n\n- **Java 8** : You must migrate your app to the [latest supported Java version](/appengine/docs/standard/lifecycle/support-schedule#java). Java 8 has reached [end of support](/appengine/docs/standard/lifecycle/runtime-lifecycle#end_of_support) on January 31,2024. Your\n existing Java 8 applications will continue to run and receive traffic. However,\n you cannot deploy new or update existing applications that use runtimes [after their end of support date](/appengine/docs/standard/lifecycle/support-schedule#java).\n\n- **Java second-generation runtimes (after end of support)** : To upgrade to a\n [supported version of Java](/appengine/docs/standard/lifecycle/support-schedule#java),\n do the following:\n\n - Update the `app.yaml` file by specifying a version of Java that you want your\n app to run. For example:\n\n runtime: java\u003cvar translate=\"no\"\u003eVERSION\u003c/var\u003e\n\n Where \u003cvar translate=\"no\"\u003eVERSION\u003c/var\u003e is the `MAJOR` version number.\n For example, to use the latest Java version, Java 21,\n specify `21`.\n For more information, see the\n [Java runtime overview](/appengine/docs/standard/java-gen2/runtime).\n - If you use legacy bundled services, you must upgrade your apps to run\n on either:\n\n - Java Enterprise Edition 10 (EE10 - default, recommended): Java EE10\n does not support `javax.servlet.*` APIs and requires you to update\n your apps and third-party dependencies to use newer Java artifacts\n like the `Jakarta` namespace.\n\n - Java Enterprise Edition 8 (EE8): Java EE8 lets you use `javax.servlet.*`\n APIs, but you must make minor configuration changes\n to your `appengine-web.xml` file.\n\n See [Upgrade to Java 21 for legacy bundled services](#update_for_bundled_services) for all options.\n- **Java 17**:\n\n App Engine supports this version. To continue to upgrade to the\n latest support version, do the following:\n - Update the `app.yaml` file by specifying a version of Java that you want your\n app to run. For example:\n\n runtime: java\u003cvar translate=\"no\"\u003eVERSION\u003c/var\u003e\n\n Where \u003cvar translate=\"no\"\u003eVERSION\u003c/var\u003e is the `MAJOR` version number.\n For example, to use the latest Java version, Java 21,\n specify `21`.\n For more information, see the\n [Java runtime overview](/appengine/docs/standard/java-gen2/runtime).\n - If you use legacy bundled services, you must upgrade your apps to run\n on either:\n\n - Java Enterprise Edition 10 (EE10 - default, recommended): Java EE10\n does not support `javax.servlet.*` APIs and requires you to update\n your apps and third-party dependencies to use newer Java artifacts\n like the `Jakarta` namespace.\n\n - Java Enterprise Edition 8 (EE8): Java EE8 lets you use\n `javax.servlet.*` APIs, but you must make minor configuration changes\n to your `appengine-web.xml` file.\n\n See [Upgrade to Java 21 for legacy bundled services](#update_for_bundled_services) for all options.\n\nUpgrade to Java 21 for legacy bundled services\n----------------------------------------------\n\n| **Important:** The `javax.servlet.*` APIs reached the [end of community support](https://github.com/jetty/jetty.project/issues/7958). We recommend that you update to [EE10](#ee10).\n\n### Java runtime compatibility\n\nRefer to the following table to understand which Java versions are compatible\nwith your versions of servlet:\n\n### Upgrade to Java 21 on EE10\n\nTo use Java 21 on [Enterprise Edition 10 (EE10)](https://jakarta.ee/release/10/),\nyou must upgrade your application servlets and dependencies in your Maven and Gradle\nfiles to include the `Jakarta` namespace:\n\n1. Change the version number in your `web.xml` configuration file to `version=6.0`. For example:\n\n \u003cweb-app xmlns=\"https://jakarta.ee/xml/ns/jakartaee\"\n xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLocation=\"https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd\"\n version=\"6.0\"\u003e\n ...\n \u003c/web-app\u003e\n\n2. Rename your application servlets and dependencies from `javax.servlet.*` to\n `jakarta.servlet.*`:\n\n import jakarta.servlet.ServletException;\n import jakarta.servlet.annotation.WebServlet;\n import jakarta.servlet.http.Cookie;\n import jakarta.servlet.http.HttpServlet;\n import jakarta.servlet.http.HttpServletRequest;\n import jakarta.servlet.http.HttpServletResponse;\n\n @WebServlet(name = \"viewer\", urlPatterns = {\"/view\"})\n public class MyServlet extends HttpServlet {\n ......\n\n3. Update your remaining application third-party dependencies to newer Java artifacts\n depending on the `Jakarta` namespace.\n\n4. Add the following system property in your [`appengine-web.xml`](/appengine/docs/standard/java-gen2/config/appref-xml#system_properties) file:\n\n \u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n \u003cappengine-web-app xmlns=\"http://appengine.google.com/ns/1.0\"\u003e\n \u003cruntime\u003ejava21\u003c/runtime\u003e \u003c!-- or java17 --\u003e\n \u003csystem-properties\u003e\n \u003cproperty name=\"appengine.use.EE10\" value=\"true\"/\u003e\n \u003c/system-properties\u003e\n \u003capp-engine-apis\u003etrue\u003c/app-engine-apis\u003e\n \u003c/appengine-web-app\u003e\n\n5. Optional: Java 21 includes support for virtual threads. To enable\n virtual threads, you add the\n `appengine.use.virtualthreads` property within the `system-properties` tag\n in your [`appengine-web.xml`](/appengine/docs/standard/java-gen2/config/appref-xml#system_properties)\n file.\n\n### Upgrade to Java 17 or 21 on EE8\n\nYou can continue using `javax.servlet.*` APIs on Java EE8 without major application\nconfiguration changes, because EE8 offers backward compatibility for Java EE6\nand later. To run your applications on Java EE8, you must declare a new\n`system-properties` tag in your\n[`appengine-web.xml`](/appengine/docs/standard/java-gen2/config/appref-xml#system_properties)\nfile with the non-default `app.engine.use.EE8` configuration: \n\n \u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n \u003cappengine-web-app xmlns=\"http://appengine.google.com/ns/1.0\"\u003e\n \u003cruntime\u003ejava21\u003c/runtime\u003e \u003c!-- or java17 --\u003e\n \u003csystem-properties\u003e\n \u003cproperty name=\"appengine.use.EE8\" value=\"true\"/\u003e\n \u003c/system-properties\u003e\n \u003capp-engine-apis\u003etrue\u003c/app-engine-apis\u003e\n \u003c/appengine-web-app\u003e\n\nOptional: Java 21 includes support for virtual threads. To enable\nvirtual threads, you add the `appengine.use.virtualthreads` property\nwithin the `system-properties` tag. Example:\n`\u003cproperty name=\"appengine.use.virtualthreads\" value=\"true\"/\u003e`"]]