Java 25 est installé sur votre Mac, mais une ancienne version apparaît encore ? Ne réinstallez pas tout de suite : vérifiez d’abord le JDK réellement appelé, puis alignez le chemin par défaut, JAVA_HOME, PATH et le JDK du projet. Cette méthode convient aussi bien à un Mac Intel qu’à un Mac Apple Silicon, à condition de choisir l’architecture correcte dans la documentation officielle du JDK 25 pour macOS.
Cette page s’adresse aux étudiants débutants qui voient encore une ancienne version avec java, ou qui trouvent java mais pas javac. Elle est également conçue pour les projets utilisant IntelliJ IDEA ou VS Code, ainsi que pour les ordinateurs scolaires sans droits administrateur et les environnements Mac distants.
01 Le diagnostic commence par le chemin réellement utilisé
Une installation réussie ne signifie pas que le nouveau JDK est devenu le choix par défaut. Imaginez plusieurs manuels de Java rangés dans une bibliothèque : le manuel Java 25 est bien présent, mais votre bureau utilise encore l’ancien livre. Sur macOS, il faut donc contrôler séparément la présence des JDK et les commandes effectivement appelées.
Ouvrez Terminal, puis exécutez les commandes suivantes, une par une :
java -version
javac -version
/usr/libexec/java_home -V
which java
which javac
Voici comment lire chaque résultat :
| Vérification | Ce que vous cherchez | Interprétation |
|---|---|---|
java -version |
Une version commençant par 25 |
Le lanceur Java utilisé par le terminal est Java 25 |
javac -version |
Une version commençant par 25 |
Le compilateur utilisé est bien celui attendu |
java_home -V |
Une ligne correspondant au JDK 25 | macOS a repéré Java 25 parmi les JDK installés |
which java |
Un chemin cohérent avec le mécanisme Java de macOS | Vous identifiez le programme appelé en premier |
which javac |
Un chemin vers un compilateur | Vous vérifiez que le terminal n’utilise pas seulement un environnement d’exécution |
La commande java_home est importante : elle interroge les JDK reconnus par macOS et permet de sélectionner une version disponible. La documentation d’installation de Java 25 décrit aussi la structure des répertoires JDK sur macOS ; utilisez-la pour comparer l’installation réelle au chemin affiché, plutôt que de supprimer manuellement un dossier protégé dans le guide officiel d’installation macOS.
Condition d’arrêt : si /usr/libexec/java_home -V ne liste pas Java 25, le problème n’est pas encore PATH. L’installation est incomplète, placée ailleurs ou réalisée avec un paquet qui n’est pas le JDK attendu. Retournez alors à la page officielle de téléchargement et vérifiez l’architecture, le fichier choisi et la fin de l’installation.
Si Java 25 est listé, mais que java -version affiche une ancienne version, ne supprimez rien. Vous avez probablement plusieurs JDK et un ancien chemin prioritaire.
02 Java 25 est installé, mais `javac` reste introuvable
java et javac ne répondent pas au même besoin. Le premier lance un programme déjà compilé ; le second transforme votre fichier source .java en fichier exécutable par la machine virtuelle Java. Pour apprendre Java, compiler vos propres exercices et suivre un cours, la présence de javac est indispensable.
Vérifiez d’abord si votre terminal reconnaît un JDK complet :
/usr/libexec/java_home -v 25
Si cette commande renvoie un chemin, testez directement le compilateur associé :
"$(/usr/libexec/java_home -v 25)/bin/javac" -version
Un résultat javac 25... confirme que le compilateur est installé, même si votre variable PATH ne le propose pas encore. Dans ce cas, le défaut se situe dans la configuration du terminal, pas dans le JDK lui-même.
Si java_home -v 25 ne renvoie aucun chemin, contrôlez les points suivants :
- le paquet téléchargé était bien un JDK, et non un simple environnement d’exécution ;
- l’installation s’est terminée sans message d’erreur ;
- Java 25 correspond à l’architecture de votre Mac ;
- le JDK figure dans le répertoire attendu par la structure macOS documentée officiellement.
Le guide de démarrage de dev.java explique la différence entre le JDK, la compilation et l’exécution d’un premier programme. C’est une distinction utile pour les débutants : installer un programme capable de lancer Java ne suffit pas nécessairement pour suivre un exercice qui demande javac.
N’utilisez pas de script trouvé au hasard pour « réparer » Java. Ne modifiez pas les répertoires protégés de macOS et ne désactivez pas les protections de sécurité. Si vous n’avez pas les droits nécessaires sur un ordinateur scolaire, demandez une installation autorisée ou choisissez un environnement indépendant.
03 Mettre d’accord le JDK par défaut, `JAVA_HOME` et `PATH`
Le chemin par défaut est la porte indiquée par macOS. JAVA_HOME est l’adresse écrite sur la fiche de votre cours. PATH est la liste des couloirs que le terminal parcourt pour trouver java et javac. Si ces trois éléments ne désignent pas le même JDK, vous obtenez un environnement incohérent.
Pour tester Java 25 uniquement dans la fenêtre actuelle, utilisez :
export JAVA_HOME=$(/usr/libexec/java_home -v 25)
export PATH="$JAVA_HOME/bin:$PATH"
java -version
javac -version
echo "$JAVA_HOME"
Le premier export demande à macOS de sélectionner le JDK 25 reconnu. Le second place son dossier bin avant les anciens chemins. Les deux commandes de version doivent maintenant afficher Java 25 ; echo "$JAVA_HOME" doit afficher le chemin renvoyé par java_home.
Cette modification est temporaire. Elle disparaît lorsque vous fermez cette session de Terminal. C’est un bon test, car il ne change pas durablement votre configuration.
| Situation observée | Cause la plus probable | Action raisonnable |
|---|---|---|
| Tout fonctionne dans la fenêtre actuelle, puis l’ancienne version revient | La configuration n’a pas été enregistrée dans le fichier de démarrage du shell | Identifier le fichier utilisé par votre session avant toute modification |
| Java 25 apparaît parfois, puis une autre version revient | Plusieurs lignes JAVA_HOME ou PATH se contredisent |
Rechercher les anciennes lignes et n’en conserver qu’une logique |
java_home -v 25 échoue |
macOS ne reconnaît pas le JDK 25 | Refaire le contrôle du paquet, de l’architecture et de l’installation |
javac reste absent malgré JAVA_HOME correct |
Le JDK est incomplet ou le chemin effectif n’est pas celui testé | Lancer "$JAVA_HOME/bin/javac" -version pour isoler le problème |
| Le terminal est correct, mais l’IDE ne l’est pas | L’IDE ou le projet possède un réglage indépendant | Configurer le JDK du projet séparément |
Commencez par savoir quel fichier de configuration votre session utilise :
echo "$SHELL"
ls -la ~
Selon votre installation de macOS et votre shell, vous pouvez avoir un fichier de démarrage différent. Ne copiez pas plusieurs blocs trouvés en ligne dans tous les fichiers. Ouvrez seulement le fichier correspondant à votre configuration, faites une sauvegarde, puis ajoutez une configuration simple :
export JAVA_HOME=$(/usr/libexec/java_home -v 25)
export PATH="$JAVA_HOME/bin:$PATH"
Rechargez ensuite le fichier de configuration avec la commande adaptée à votre shell, ou fermez puis rouvrez Terminal. Vérifiez de nouveau :
java -version
javac -version
echo "$JAVA_HOME"
Pour revenir en arrière, supprimez uniquement les lignes que vous avez ajoutées, puis restaurez la copie de sauvegarde. Cette précaution évite de transformer une erreur de version en problème général de terminal.
Attention : ne définissez pas
JAVA_HOMEavec un chemin deviné à partir du nom du Mac. Le nom commercial de la machine ne prouve ni son processeur ni le dossier exact du JDK. Faites confiance au chemin retourné parjava_homeet à la documentation officielle.
04 Vérifier l’architecture avant de corriger l’installation
Apple Silicon désigne les Mac équipés d’une architecture AArch64. Les Mac Intel utilisent l’architecture x64. Lors du téléchargement du JDK 25, ces deux choix ne sont pas interchangeables : un mauvais paquet peut refuser l’installation, provoquer un lancement anormal ou créer un problème de compatibilité ultérieur. La page officielle de Java 25 distingue explicitement les paquets macOS AArch64 et x64 dans ses instructions d’installation.
Identifiez votre architecture avec :
uname -m
Interprétez le résultat ainsi :
arm64indique un Mac Apple Silicon ;x86_64indique un Mac Intel.
Vous pouvez également consulter les informations générales dans les réglages système, mais ne déduisez pas l’architecture d’un nom de modèle aperçu dans une annonce ou dans les informations de livraison d’un Mac distant.
Résultat de uname -m |
Paquet à rechercher | Si le paquet ne correspond pas |
|---|---|---|
arm64 |
macOS AArch64 | Reprenez le téléchargement avec l’architecture Apple Silicon |
x86_64 |
macOS x64 | Reprenez le téléchargement avec l’architecture Intel |
| Résultat inattendu ou absent | Ne téléchargez pas au hasard | Demandez une vérification autorisée de la machine |
Si vous utilisez un Mac distant, vérifiez l’architecture dans la session elle-même. Cette étape est particulièrement importante lorsque plusieurs machines sont proposées sous des noms proches. Vous pouvez aussi demander au gestionnaire de l’environnement de confirmer le processeur avant de choisir le fichier d’installation.
05 Réparer le décalage entre le terminal et l’IDE
Un terminal correct ne garantit pas que votre projet utilise Java 25. Il existe au moins trois réglages indépendants :
- le Java du terminal ;
- le Java utilisé pour exécuter l’IDE ;
- le JDK sélectionné par le projet et ses modules.
C’est pour cette raison qu’un projet peut continuer à compiler avec une ancienne version alors que java -version affiche Java 25.
Créez un fichier minimal nommé VersionTest.java :
public class VersionTest {
public static void main(String[] args) {
System.out.println(System.getProperty("java.version"));
System.out.println(System.getProperty("java.home"));
}
}
Dans Terminal, placez-vous dans le dossier du fichier et lancez :
javac VersionTest.java
java VersionTest
Le résultat doit afficher la version utilisée par l’exécution ainsi que le chemin du JDK. Si la compilation échoue, corrigez d’abord le terminal. Si la compilation réussit mais que l’IDE affiche une autre version, le problème se trouve dans le projet.
Dans les réglages de votre IDE, recherchez les rubriques liées au SDK, au JDK du projet, au compilateur et aux modules. Sélectionnez le chemin renvoyé par :
/usr/libexec/java_home -v 25
La documentation de JetBrains sur les SDK explique le rôle du JDK associé au projet. Ses indications sur les réglages du projet et des modules permettent de distinguer un réglage global d’un réglage propre à un projet.
Après la sélection, relancez le même fichier VersionTest.java dans l’IDE. Comparez les deux lignes affichées avec le résultat du terminal. Si elles diffèrent encore, contrôlez la configuration d’exécution, le compilateur du module et le terminal intégré. Un terminal intégré peut avoir sa propre configuration, comme le rappelle la documentation sur l’émulateur de terminal de l’IDE.
Les conditions qui déterminent la suite
Utilisez cette liste pour éviter les réparations inutiles :
- Si Java 25 apparaît dans
java_home -Vet quejavacfonctionne après définition temporaire deJAVA_HOME, alors corrigez votre fichier de démarrage du shell. - Si Java 25 apparaît dans
java_home -V, mais que le projet utilise une ancienne version, alors changez le JDK du projet et de son module dans l’IDE. - Si Java 25 n’apparaît pas dans
java_home -V, alors vérifiez le paquet, l’architecture et l’installation avant de toucher àPATH. - Si le fichier fonctionne dans Terminal et dans l’IDE, mais que le réglage disparaît après reconnexion, alors vérifiez le fichier de démarrage et les préférences persistantes du projet.
- Si l’ordinateur scolaire bloque l’installation ou la modification du profil, alors arrêtez la réparation locale et demandez un environnement autorisé.
- Si vous avez besoin d’un espace propre pour un cours court, un projet audio, du montage vidéo ou du design nécessitant des outils macOS, alors testez une machine Mac indépendante plutôt que d’empiler des correctifs sur un ordinateur verrouillé.
06 L’acceptation finale en cinq étapes
Ne considérez pas votre environnement comme réparé simplement parce qu’une commande affiche Java 25. Validez le parcours complet :
- [ ]
java -versionaffiche Java 25. - [ ]
javac -versionaffiche Java 25. - [ ]
echo "$JAVA_HOME"renvoie le JDK sélectionné parjava_home. - [ ]
VersionTest.javase compile et s’exécute dans Terminal. - [ ] Le même fichier produit le même résultat dans l’IDE.
- [ ] Après fermeture et réouverture de Terminal, les versions restent correctes.
- [ ] Votre projet est enregistré dans un dossier auquel vous avez réellement accès.
Les points sur le JDK, la compilation et le premier programme peuvent être comparés au parcours proposé par le guide de démarrage Java. Pour un travail scolaire, ajoutez une dernière vérification : fermez la session, reconnectez-vous, puis ouvrez de nouveau le projet. Un environnement qui fonctionne uniquement jusqu’à la fermeture de Terminal n’est pas encore fiable.
La coexistence de plusieurs JDK n’est pas forcément un problème. Elle devient gênante lorsque vous ne savez plus lequel est sélectionné. Vous n’avez donc pas besoin de tout désinstaller par réflexe. Gardez les versions nécessaires à vos cours, documentez celle utilisée par chaque projet et utilisez java_home pour choisir proprement.
Si vous ne pouvez pas modifier les réglages à cause des droits de l’école, ne cherchez pas à contourner la gestion de l’appareil. Un Mac distant administré correctement peut fournir un espace séparé, avec un accès par VNC, SSH ou console web selon la configuration proposée. Avant de commencer un devoir, vérifiez toutefois que vous pouvez enregistrer les fichiers du projet et retrouver la même version après reconnexion.
Pour un premier essai, vous pouvez comparer les modalités disponibles sur la page française de CALMVPS, puis examiner les informations de location d’un Mac avant de décider. L’objectif n’est pas de louer automatiquement une machine, mais de disposer d’un environnement propre lorsque l’ordinateur scolaire ou le Mac local empêche une validation fiable.
Si votre configuration actuelle est simplement mal orientée, la réparation locale reste le choix le plus simple. En revanche, un ordinateur sans droits administrateur, des fichiers de configuration contradictoires et un projet important à terminer forment un mauvais terrain pour apprendre. Dans ce cas, louer un Mac avec CALMVPS peut offrir une expérience plus prévisible qu’un poste bloqué : vous évitez les restrictions d’installation de l’école, les conflits accumulés dans votre profil et la dépendance à une machine indisponible. Pour un besoin temporaire de cours, de test ou de projet créatif, validez d’abord le parcours Java ci-dessus dans cet environnement ; vous pourrez ensuite décider sereinement si l’achat d’un Mac ou la poursuite de la location correspond mieux à votre usage.