Passer de Java 7 à Java 8

Cet article fournit des conseils généraux sur la migration de votre application de Java 7 vers Java 8. L’utilisation des fonctionnalités Java 8 n’est pas couverte.

Il n’existe pas de solution universelle pour effectuer la transition du code de Java 7 vers Java 8. Le passage de Java 7 à Java 8 nécessite généralement peu d’efforts. Vous devrez entre autres changer quelques API, renforcer l’inférence de type dans javac, et apporter quelques modifications aux chargeurs de classe et à permgen (qu fait partie du nettoyage de la mémoire).

En général, la meilleure approche consiste à essayer d’exécuter sur Java 8 sans recompiler au préalable. Cette approche permet de rendre votre application opérationnelle le plus rapidement possible. Pour une bibliothèque, votre objectif sera de publier un artefact compilé et testé avec JDK 8.

Fin de vie (EOL) de Java 7

La prise en charge par la communauté prendra fin lorsque Java 7 atteindra sa fin de vie le 29 juillet 2022. Toutes les applications s’exécutant sur Java 7 continueront à fonctionner, mais Java 7 lui-même ne recevra pas de mises à jour ou de correctifs de sécurité. Pour réduire les risques et les failles de sécurité potentielles, mettez à niveau vos applications vers Java 8 ou 11 en fonction de vos besoins de charge de travail.

Le guide canonique à suivre est le Guide de migration du JDK Oracle. Ce guide de migration couvre toutes les incompatibilités dans la spécification Java et les incompatibilités dans l’implémentation du JDK. La plupart de ces incompatibilités sont des cas ambigus, et vous devez procéder à une investigation quand un avertissement ou une erreur se produit.

Exécution sur Java 8

La plupart des applications doivent pouvoir s’exécuter sur Java 8 sans modification. Commencez par essayer d’exécuter l’application sur Java 8 sans recompiler le code. Cette simple exécution vous permettra d’observer les avertissements et erreurs pouvant survenir. Cette approche vous permet
d’assurer plus rapidement l’exécution d’une application sur Java 8 en vous concentrant sur les tâches minimales nécessaires.

Vous pouvez résoudre la plupart des problèmes que vous êtes susceptible de rencontrer sans avoir à recompiler le code. Si vous devez corriger un problème dans le code, apportez la correction, puis poursuivez la compilation avec le JDK 7. Si possible, faites en sorte que l’application s’exécute avec java version 8 avant de compiler avec le JDK 8.

Compilation avec Java 8

La compilation avec le JDK 8 peut nécessiter la mise à jour des scripts de build, outils, frameworks de test et bibliothèques incluses. Utilisez l’option -Xlint:unchecked avec javac pour obtenir des informations sur l’utilisation d’API internes du JDK et d’autres avertissements.

Migration à partir de Java 7 pour Azure App Service

Pour migrer vos applications de service de Java 7 vers Java 8 ou 11, connectez-vous au portail Azure, accédez aux applications web que vous souhaitez mettre à jour, puis accédez à Configuration>Paramètres>Paramètres de la pile. Vous verrez des listes déroulantes pour les versions majeure et mineure de Java et la version Tomcat si vous utilisez Tomcat. Sélectionnez Java 8 ou 11. N’oubliez pas que vous pouvez apporter cette modification de configuration dans un emplacement de déploiement afin de la tester de manière sécurisée, puis faire basculer le nouvel environnement en production. (Java 7 peut être masqué afin d’empêcher les clients de créer des dépendances envers les anciens runtimes.) Pour plus d’informations, consultez Configurer des environnements intermédiaires dans Azure App Service.

Use the selector to change your Java version

Vous pouvez utiliser le paramètre d’application JAVA_TOOLS si vous devez spécifier de nouvelles options d’exécution, et elles seront appliquées au démarrage de votre application. Pour plus d’informations, consultez Configurer une application Java pour Azure App Service. Pour plus d’informations sur les stratégies de prise en charge des runtimes sur App Service, consultez la section langages et frameworks intégrés de la Vue d’ensemble d’App Service.

Étapes suivantes

Une fois que votre application s’exécute sur Java 8, nous vous recommandons de suivre le chemin de modernisation Java vers Java 11 à l’aide des guides suivants.