Aller au contenu principal

TP1.1 — Installation de Java JDK 17

Objectifs​

Ce travail pratique vous permettra de :

  • Installer le JDK 17 (Java Development Kit) sur votre système d'exploitation
  • Configurer les variables d'environnement (JAVA_HOME, PATH)
  • Vérifier l'installation avec les commandes java, javac et which java
  • Comprendre la différence entre JDK, JRE et les différentes distributions

Durée estimée : 20-30 minutes


Pourquoi Java 17 ?​

RaisonDétail
LTS (Long Term Support)Support à long terme par Oracle et la communauté (jusqu'en 2029+)
Spring Boot 3.xVersion minimale requise par Spring Boot 3
Fonctionnalités modernesRecords, sealed classes, pattern matching, text blocks
StabilitéVersion éprouvée en production depuis 2021
Quelle distribution choisir ?
  • Eclipse Temurin (Adoptium) — Recommandé, gratuit, open source
  • Oracle JDK — Gratuit pour le développement, licence commerciale en production
  • Amazon Corretto — Gratuit, maintenu par Amazon
  • Azul Zulu — Gratuit, certifié

Nous recommandons Eclipse Temurin pour ce cours.


Installation sur Windows​

🪟 Cliquez ici pour l'installation Windows (méthode graphique)

Étape 1 : Télécharger le JDK 17​

  1. Allez sur https://adoptium.net/
  2. Sélectionnez :
    • Operating System : Windows
    • Architecture : x64
    • Package Type : JDK
    • Version : 17 (LTS)
  3. Cliquez sur "Latest LTS Release" pour télécharger le fichier .msi

Étape 2 : Installer le JDK​

  1. Double-cliquez sur le fichier .msi téléchargé
  2. Suivez l'assistant d'installation
  3. IMPORTANT : Lors de l'installation, cochez ces options :
    • ✅ Add to PATH
    • ✅ Set JAVA_HOME variable
    • ✅ Associate .jar files
┌──────────────────────────────────────┐
│ Eclipse Temurin JDK 17 Setup │
│ │
│ ✅ Add to PATH │
│ ✅ Set JAVA_HOME variable │
│ ✅ Associate .jar │
│ │
│ Install to: C:\Program Files\ │
│ Eclipse Adoptium\jdk-17.0.x.x\ │
│ │
│ [Install] │
└──────────────────────────────────────┘

Étape 3 : Vérifier l'installation​

Fermez tous les terminaux ouverts, puis ouvrez un nouveau PowerShell ou CMD :

java -version

Résultat attendu :

openjdk version "17.0.13" 2024-10-15
OpenJDK Runtime Environment Temurin-17.0.13+11 (build 17.0.13+11)
OpenJDK 64-Bit Server VM Temurin-17.0.13+11 (build 17.0.13+11, mixed mode, sharing)
javac -version

Résultat attendu :

javac 17.0.13

Étape 4 : Vérifier JAVA_HOME​

$env:JAVA_HOME

Résultat attendu :

C:\Program Files\Eclipse Adoptium\jdk-17.0.13.11-hotspot
where.exe java

Résultat attendu :

C:\Program Files\Eclipse Adoptium\jdk-17.0.13.11-hotspot\bin\java.exe

Si JAVA_HOME n'est pas défini automatiquement​

  1. Menu Démarrer → tapez "variables d'environnement"
  2. Cliquez sur "Modifier les variables d'environnement système"
  3. Cliquez sur "Variables d'environnement..."
  4. Dans Variables système, cliquez sur Nouveau :
    • Nom : JAVA_HOME
    • Valeur : C:\Program Files\Eclipse Adoptium\jdk-17.0.13.11-hotspot
  5. Trouvez la variable Path → Modifier → Nouveau :
    • %JAVA_HOME%\bin
  6. OK partout → Redémarrer le terminal
🪟 Installation Windows avec Chocolatey (alternative rapide)

Si vous avez Chocolatey installé :

choco install temurin17

Vérification :

java -version
javac -version
$env:JAVA_HOME
where.exe java

Chocolatey configure automatiquement JAVA_HOME et le PATH.

🪟 Installation Windows avec Scoop (alternative rapide)

Si vous avez Scoop installé :

scoop bucket add java
scoop install temurin17-jdk

Vérification :

java -version
javac -version
$env:JAVA_HOME
where.exe java

Installation sur macOS​

🍎 Installation macOS avec Homebrew (Recommandé)

Étape 1 : Installer Homebrew (si pas déjà fait)​

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Étape 2 : Installer le JDK 17​

brew install --cask temurin@17

Étape 3 : Vérifier l'installation​

java -version

Résultat attendu :

openjdk version "17.0.13" 2024-10-15
OpenJDK Runtime Environment Temurin-17.0.13+11 (build 17.0.13+11)
OpenJDK 64-Bit Server VM Temurin-17.0.13+11 (build 17.0.13+11, mixed mode)
javac -version

Résultat attendu :

javac 17.0.13

Étape 4 : Vérifier le chemin et JAVA_HOME​

which java

Résultat attendu :

/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home/bin/java
/usr/libexec/java_home -v 17

Résultat attendu :

/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home

Étape 5 : Configurer JAVA_HOME (permanent)​

Ouvrez votre fichier de profil shell :

nano ~/.zshrc

Ajoutez à la fin :

export JAVA_HOME=$(/usr/libexec/java_home -v 17)
export PATH=$JAVA_HOME/bin:$PATH

Rechargez :

source ~/.zshrc

Vérifiez :

echo $JAVA_HOME

Résultat attendu :

/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
🍎 Installation macOS avec SDKMAN! (alternative)

Installer SDKMAN!​

curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"

Lister les versions Java 17 disponibles​

sdk list java | grep tem

Résultat (exemple) :

 Temurin       |     | 17.0.13      | tem    | installed  | 17.0.13-tem

Installer​

sdk install java 17.0.13-tem

Vérifier​

java -version
which java
echo $JAVA_HOME
Avantage SDKMAN!

Permet d'installer plusieurs versions de Java et de basculer facilement :

sdk use java 17.0.13-tem    # Utiliser Java 17
sdk use java 21.0.5-tem # Basculer vers Java 21
sdk default java 17.0.13-tem # Définir Java 17 par défaut
🍎 Installation macOS manuelle (téléchargement direct)

Étape 1 : Télécharger​

  1. Allez sur https://adoptium.net/
  2. Sélectionnez macOS → aarch64 (Apple Silicon M1/M2/M3) ou x64 (Intel)
  3. Téléchargez le fichier .pkg

Étape 2 : Installer​

Double-cliquez sur le fichier .pkg et suivez l'assistant.

Étape 3 : Configurer JAVA_HOME​

echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 17)' >> ~/.zshrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.zshrc
source ~/.zshrc

Étape 4 : Vérifier​

java -version
javac -version
which java
echo $JAVA_HOME

Installation sur Linux​

🐧 Ubuntu / Debian (apt)

Étape 1 : Mettre à jour les paquets​

sudo apt update && sudo apt upgrade -y

Étape 2 : Installer le JDK 17​

Option A — OpenJDK depuis les dépôts officiels :

sudo apt install openjdk-17-jdk -y

Option B — Eclipse Temurin (recommandé pour uniformité) :

sudo apt install -y wget apt-transport-https gpg

wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | \
gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/adoptium.gpg > /dev/null

echo "deb https://packages.adoptium.net/artifactory/deb $(lsb_release -cs) main" | \
sudo tee /etc/apt/sources.list.d/adoptium.list

sudo apt update
sudo apt install temurin-17-jdk -y

Étape 3 : Vérifier l'installation​

java -version

Résultat attendu :

openjdk version "17.0.13" 2024-10-15
OpenJDK Runtime Environment Temurin-17.0.13+11 (build 17.0.13+11)
OpenJDK 64-Bit Server VM Temurin-17.0.13+11 (build 17.0.13+11, mixed mode, sharing)
javac -version

Résultat attendu :

javac 17.0.13

Étape 4 : Vérifier le chemin​

which java

Résultat attendu :

/usr/bin/java
readlink -f $(which java)

Résultat attendu (montre le vrai chemin) :

/usr/lib/jvm/temurin-17-jdk-amd64/bin/java

Étape 5 : Configurer JAVA_HOME​

sudo nano /etc/environment

Ajoutez cette ligne :

JAVA_HOME="/usr/lib/jvm/temurin-17-jdk-amd64"

Ou pour OpenJDK :

JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"

Rechargez :

source /etc/environment
echo $JAVA_HOME
Alternative — dans ~/.bashrc
echo 'export JAVA_HOME=/usr/lib/jvm/temurin-17-jdk-amd64' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

Si plusieurs versions de Java sont installées​

sudo update-alternatives --config java

Cela affiche toutes les versions installées et vous permet de choisir :

Il existe 2 choix pour l'alternative java.

Sélection Chemin Priorité État
------------------------------------------------------------
* 0 /usr/lib/jvm/java-21-openjdk-amd64/bin/java 2111 mode automatique
1 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1711 mode manuel
2 /usr/lib/jvm/java-21-openjdk-amd64/bin/java 2111 mode manuel

Appuyez sur <Entrée> pour conserver la valeur par défaut[*] ou tapez le numéro sélectionné : 1

Même chose pour javac :

sudo update-alternatives --config javac
🐧 Fedora / CentOS / RHEL (dnf/yum)

Fedora​

sudo dnf install java-17-openjdk-devel -y

CentOS / RHEL​

sudo yum install java-17-openjdk-devel -y

Vérifier​

java -version
javac -version
which java

Configurer JAVA_HOME​

echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
echo $JAVA_HOME

Choisir la version active​

sudo alternatives --config java
sudo alternatives --config javac
🐧 Arch Linux / Manjaro (pacman)
sudo pacman -S jdk17-openjdk

Choisir la version active​

sudo archlinux-java status
sudo archlinux-java set java-17-openjdk

Vérifier​

java -version
javac -version
which java
echo $JAVA_HOME
🐧 Installation avec SDKMAN! (toutes distributions)

Installer SDKMAN!​

curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"

Installer Java 17​

sdk list java | grep tem
sdk install java 17.0.13-tem

Vérifier​

java -version
javac -version
which java
echo $JAVA_HOME

Gérer plusieurs versions​

sdk list java                      # Voir toutes les versions disponibles
sdk install java 21.0.5-tem # Installer Java 21 en plus
sdk use java 17.0.13-tem # Utiliser Java 17 pour cette session
sdk default java 17.0.13-tem # Java 17 par défaut
🐧 Installation manuelle (téléchargement direct)

Étape 1 : Télécharger​

cd /tmp
wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.13%2B11/OpenJDK17U-jdk_x64_linux_hotspot_17.0.13_11.tar.gz

Étape 2 : Extraire​

sudo mkdir -p /usr/lib/jvm
sudo tar -xzf OpenJDK17U-jdk_x64_linux_hotspot_17.0.13_11.tar.gz -C /usr/lib/jvm

Étape 3 : Configurer​

echo 'export JAVA_HOME=/usr/lib/jvm/jdk-17.0.13+11' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

Étape 4 : Vérifier​

java -version
javac -version
which java
echo $JAVA_HOME

Vérification finale (tous les OS)​

Ouvrez un nouveau terminal et exécutez toutes ces commandes :

1. Version de Java​

java -version

✅ Doit afficher openjdk version "17.0.x"

2. Compilateur Java​

javac -version

✅ Doit afficher javac 17.0.x

3. Où est Java installé ?​

# macOS / Linux
which java
readlink -f $(which java) # chemin réel (Linux)

# Windows PowerShell
where.exe java

4. JAVA_HOME est défini ?​

# macOS / Linux
echo $JAVA_HOME

# Windows PowerShell
$env:JAVA_HOME

# Windows CMD
echo %JAVA_HOME%

✅ Doit afficher un chemin vers le JDK 17

5. Test rapide — compiler et exécuter un programme​

Créez un fichier Hello.java :

public class Hello {
public static void main(String[] args) {
System.out.println("Java " + System.getProperty("java.version") + " fonctionne !");
System.out.println("JAVA_HOME = " + System.getProperty("java.home"));
}
}

Compilez et exécutez :

javac Hello.java
java Hello

Résultat attendu :

Java 17.0.13 fonctionne !
JAVA_HOME = /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home

Nettoyez :

rm Hello.java Hello.class

Résolution de problèmes​

❌ java n'est pas reconnu comme commande
CauseSolution
Java n'est pas installéSuivre les étapes d'installation ci-dessus
PATH non configuréAjouter JAVA_HOME/bin au PATH
Terminal pas rechargéFermer et rouvrir le terminal

Windows : Vérifiez que %JAVA_HOME%\bin est dans le PATH système.

macOS/Linux : Vérifiez que votre ~/.zshrc ou ~/.bashrc contient :

export JAVA_HOME=...
export PATH=$JAVA_HOME/bin:$PATH
❌ Mauvaise version de Java affichée

Si java -version affiche Java 8, 11 ou 21 au lieu de 17 :

Windows :

  1. Vérifiez le PATH : la version 17 doit apparaître avant les autres
  2. Supprimez les anciennes versions du PATH

macOS :

/usr/libexec/java_home -V          # Liste toutes les versions
export JAVA_HOME=$(/usr/libexec/java_home -v 17)
java -version # Doit maintenant afficher 17

Linux :

sudo update-alternatives --config java    # Choisir la version 17
sudo update-alternatives --config javac
❌ JAVA_HOME n'est pas défini

Windows :

  1. Menu Démarrer → "variables d'environnement"
  2. Variables système → Nouveau
  3. Nom : JAVA_HOME, Valeur : C:\Program Files\Eclipse Adoptium\jdk-17.0.13.11-hotspot

macOS :

echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 17)' >> ~/.zshrc
source ~/.zshrc

Linux :

echo 'export JAVA_HOME=/usr/lib/jvm/temurin-17-jdk-amd64' >> ~/.bashrc
source ~/.bashrc
❌ Différence entre java et javac
CommandeRôleInclus dans
javaExécuter un programme Java compiléJRE et JDK
javacCompiler le code source .java en .classJDK uniquement

Si java fonctionne mais pas javac → vous avez installé le JRE au lieu du JDK. Réinstallez le JDK.

❓ JDK vs JRE vs JVM — c'est quoi la différence ?
┌─────────────────────────────────────┐
│ JDK │
│ (Java Development Kit) │
│ ┌────────────────────────────────┐ │
│ │ JRE │ │
│ │ (Java Runtime Environment) │ │
│ │ ┌──────────────────────────┐ │ │
│ │ │ JVM │ │ │
│ │ │ (Java Virtual Machine) │ │ │
│ │ │ Exécute le bytecode │ │ │
│ │ └──────────────────────────┘ │ │
│ │ + Bibliothèques standard │ │
│ │ + java (exécuter) │ │
│ └────────────────────────────────┘ │
│ + javac (compiler) │
│ + jdb (debugger) │
│ + javadoc, jar, jshell... │
└─────────────────────────────────────┘
ComposantCe qu'il faitPour qui
JVMExécute le bytecode JavaTout le monde
JREJVM + bibliothèques pour exécuterUtilisateurs finaux
JDKJRE + outils pour développer (javac, jdb...)Développeurs ← C'est celui-ci qu'il faut

Checklist de validation​

Avant de passer au TP suivant (Installation de Maven), vérifiez :

  • java -version affiche 17.0.x
  • javac -version affiche 17.0.x
  • which java (ou where.exe java) retourne un chemin valide
  • echo $JAVA_HOME (ou $env:JAVA_HOME) est défini
  • Le programme Hello.java compile et s'exécute correctement

Prochaine Étape​

Java 17 est installé ! Passez maintenant à l'installation de Maven :

➡️ TP suivant : Installation de Maven 3.9.x


⬅️ Retour au Module 1