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,javacetwhich java - Comprendre la différence entre JDK, JRE et les différentes distributions
Durée estimée : 20-30 minutes
Pourquoi Java 17 ?
| Raison | Détail |
|---|---|
| LTS (Long Term Support) | Support à long terme par Oracle et la communauté (jusqu'en 2029+) |
| Spring Boot 3.x | Version minimale requise par Spring Boot 3 |
| Fonctionnalités modernes | Records, sealed classes, pattern matching, text blocks |
| Stabilité | Version éprouvée en production depuis 2021 |
- 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
- Allez sur https://adoptium.net/
- Sélectionnez :
- Operating System : Windows
- Architecture : x64
- Package Type : JDK
- Version : 17 (LTS)
- Cliquez sur "Latest LTS Release" pour télécharger le fichier
.msi
Étape 2 : Installer le JDK
- Double-cliquez sur le fichier
.msitéléchargé - Suivez l'assistant d'installation
- 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
- Menu Démarrer → tapez "variables d'environnement"
- Cliquez sur "Modifier les variables d'environnement système"
- Cliquez sur "Variables d'environnement..."
- Dans Variables système, cliquez sur Nouveau :
- Nom :
JAVA_HOME - Valeur :
C:\Program Files\Eclipse Adoptium\jdk-17.0.13.11-hotspot
- Nom :
- Trouvez la variable
Path→ Modifier → Nouveau :%JAVA_HOME%\bin
- 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
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
- Allez sur https://adoptium.net/
- Sélectionnez macOS → aarch64 (Apple Silicon M1/M2/M3) ou x64 (Intel)
- 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
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)
🐧 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
| Cause | Solution |
|---|---|
| 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 :
- Vérifiez le PATH : la version 17 doit apparaître avant les autres
- 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 :
- Menu Démarrer → "variables d'environnement"
- Variables système → Nouveau
- 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
| Commande | Rôle | Inclus dans |
|---|---|---|
java | Exécuter un programme Java compilé | JRE et JDK |
javac | Compiler le code source .java en .class | JDK 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... │
└─────────────────────────────────────┘
| Composant | Ce qu'il fait | Pour qui |
|---|---|---|
| JVM | Exécute le bytecode Java | Tout le monde |
| JRE | JVM + bibliothèques pour exécuter | Utilisateurs finaux |
| JDK | JRE + 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 -versionaffiche 17.0.x -
javac -versionaffiche 17.0.x -
which java(ouwhere.exe java) retourne un chemin valide -
echo $JAVA_HOME(ou$env:JAVA_HOME) est défini - Le programme
Hello.javacompile 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