Comment mettre à jour Java (JRE et JDK)

Mettre à jour Java est devenu plus simple depuis l'apparition des distributions OpenJDK et des gestionnaires de paquets modernes. L'ancienne Console Java d'Oracle ne concerne plus que le JRE public, qui n'est d'ailleurs plus distribué officiellement depuis Java 9. Voici les options selon votre contexte.

Quelle version avez-vous actuellement ?

Ouvrez un terminal et tapez :

java -version

Exemple de sortie :

openjdk version "17.0.11" 2024-04-16
OpenJDK Runtime Environment Temurin-17.0.11+9
OpenJDK 64-Bit Server VM Temurin-17.0.11+9

Vous savez alors la version majeure (17), la version mineure (0.11) et la distribution (Temurin). La version 21 est l'actuelle LTS recommandée en 2026.

Mise à jour sur Windows

Via winget (recommandé)

winget upgrade EclipseAdoptium.Temurin.21.JDK

Pour lister ce qui est installé :

winget list | findstr -i jdk

Via Chocolatey

choco upgrade temurin21

Via la Console Java (uniquement pour l'ancien JRE public)

Si vous avez installé l'ancien JRE d'Oracle (Java 8 ou antérieur), vous pouvez le mettre à jour via le Panneau de configuration :

  1. Panneau de configuration → Java (ouvre la Console Java)
  2. Onglet Mise à jourMettre à jour maintenant

Attention : Oracle ne distribue plus de mises à jour publiques gratuites de Java 8 depuis avril 2019 pour un usage commercial. Préférez une distribution OpenJDK (Temurin, Corretto, Zulu).

Mise à jour sur macOS

Via Homebrew

brew update
brew upgrade temurin21     # ou openjdk@21, selon ce qui est installé

Via SDKMAN!

SDKMAN! est le meilleur outil pour jongler entre plusieurs JDK :

curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install java 21.0.3-tem     # installe Temurin 21
sdk default java 21.0.3-tem     # devient la version par défaut
sdk use java 17.0.11-tem        # basculer temporairement

Mise à jour sur Linux

Debian / Ubuntu

sudo apt update
sudo apt upgrade openjdk-21-jdk

Fedora / RHEL

sudo dnf upgrade java-21-openjdk

Via SDKMAN! (multiplate-forme)

Les mêmes commandes que sur macOS fonctionnent sur toutes les distributions Linux. SDKMAN! est particulièrement pratique pour le développement multi-version.

Désinstaller les anciennes versions

Une fois la nouvelle version installée et validée, retirez les anciennes pour libérer de la place et éviter toute confusion :

# Windows via winget
winget uninstall EclipseAdoptium.Temurin.17.JDK

# macOS via brew
brew uninstall temurin17

# Linux Debian
sudo apt autoremove openjdk-17-jdk

Après la mise à jour

Vérifiez systématiquement :

  1. java -version et javac -version — les deux doivent pointer vers la nouvelle version.
  2. echo $JAVA_HOME (Linux/macOS) ou echo %JAVA_HOME% (Windows) — la variable doit pointer vers le nouveau dossier.
  3. Dans l'IDE : Project Structure → SDK (IntelliJ) ou Installed JREs (Eclipse) — sélectionnez la nouvelle version.
  4. Pour Maven : mvn -version doit montrer la bonne JVM.

Automatisation dans un projet

Dans un projet collaboratif, figez la version requise pour éviter les surprises :

Fichier .sdkmanrc

java=21.0.3-tem

Chaque développeur exécute sdk env dans le dossier du projet pour basculer.

Dans pom.xml (Maven)

<properties>
  <maven.compiler.source>21</maven.compiler.source>
  <maven.compiler.target>21</maven.compiler.target>
</properties>

Dans build.gradle.kts (Gradle)

java {
    toolchain {
        languageVersion.set(JavaLanguageVersion.of(21))
    }
}

Fréquence de mise à jour

Oracle publie une version majeure tous les 6 mois et des patches de sécurité tous les 3 mois. Pour une application en production :

  • Suivez la version LTS en cours (21 aujourd'hui, bientôt 25).
  • Appliquez les patches de sécurité trimestriels sans attendre.
  • Planifiez la migration vers la LTS suivante 1 à 2 ans après sa sortie.

Avec SDKMAN! ou un gestionnaire de paquets, une mise à jour se fait en une commande — plus aucune excuse pour rester sur une JVM obsolète.