TL; DR
Pour les lecteurs expérimentés:
- Trouvez le chemin Java; cela ressemble à ceci:
C:\Program Files\Java\jdkxxxx\bin\
- Recherche dans le menu Démarrer de "variable d'environnement" pour ouvrir la boîte de dialogue des options.
- Examinez
PATH
. Supprimez les anciens chemins Java.
- Ajoutez le nouveau chemin Java à
PATH
.
- Modifier
JAVA_HOME
.
- Fermez et rouvrez la console / IDE.
Bienvenue!
Vous avez rencontré l'un des problèmes techniques les plus notoires auxquels sont confrontés les débutants Java: le 'xyz' is not recognized as an internal or external command...
message d'erreur.
En un mot, vous n'avez pas installé Java correctement . La finalisation de l'installation de Java sur Windows nécessite quelques étapes manuelles. Vous devez toujours effectuer ces étapes après l'installation de Java, y compris après la mise à niveau du JDK.
Variables d'environnement et PATH
(Si vous comprenez déjà cela, n'hésitez pas à ignorer les trois sections suivantes.)
Lorsque vous exécutez javac HelloWorld.java
, cmd doit déterminer où javac.exe
se trouve. Ceci est accompli avec PATH
une variable d'environnement.
Une variable d'environnement est une paire clé-valeur spéciale (par exemple windir=C:\WINDOWS
). La plupart sont fournis avec le système d'exploitation, et certains sont nécessaires au bon fonctionnement du système. Une liste d'entre eux est transmise à chaque programme (y compris cmd) au démarrage. Sous Windows , il existe deux types : les variables d'environnement utilisateur et les variables d'environnement système .
Vous pouvez voir vos variables d'environnement comme ceci:
C:\>set
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\craig\AppData\Roaming
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
...
La variable la plus importante est PATH
. Il s'agit d'une liste de chemins, séparés par ;
. Lorsqu'une commande est entrée dans cmd, chaque répertoire de la liste sera analysé pour un exécutable correspondant.
Sur mon ordinateur, PATH
c'est:
C:\>echo %PATH%
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPower
Shell\v1.0\;C:\ProgramData\Microsoft\Windows\Start Menu\Programs;C:\Users\craig\AppData\
Roaming\Microsoft\Windows\Start Menu\Programs;C:\msys64\usr\bin;C:\msys64\mingw64\bin;C:\
msys64\mingw32\bin;C:\Program Files\nodejs\;C:\Program Files (x86)\Yarn\bin\;C:\Users\
craig\AppData\Local\Yarn\bin;C:\Program Files\Java\jdk-10.0.2\bin;C:\ProgramFiles\Git\cmd;
C:\Program Files\Oracle\VirtualBox;C:\Program Files\7-Zip\;C:\Program Files\PuTTY\;C:\
Program Files\launch4j;C:\Program Files (x86)\NSIS\Bin;C:\Program Files (x86)\Common Files
\Adobe\AGL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program
Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\iCLS Client\;
C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files
(x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\iCLS
Client\;C:\Users\craig\AppData\Local\Microsoft\WindowsApps
Lorsque vous exécutez javac HelloWorld.java
, cmd, après avoir réalisé qu'il javac
ne s'agit pas d'une commande interne , recherche le système PATH
suivi par l'utilisateurPATH
. Il pénètre mécaniquement tous les répertoires dans la liste, et vérifie si javac.com
, javac.exe
, javac.bat
, etc. est présent. Quand il trouve javac
, il l'exécute. Sinon, il imprime'javac' is not recognized as an internal or external command, operable program or batch file.
Vous devez ajouter le répertoire des exécutables Java à PATH
.
JDK contre JRE
(Si vous comprenez déjà cela, n'hésitez pas à ignorer cette section.)
Lors du téléchargement de Java, vous avez le choix entre:
- L' environnement d'exécution Java (JRE), qui comprend les outils nécessaires pour exécuter des programmes Java, mais pas pour en compiler de nouveaux - il en contient
java
mais pas javac
.
- Le kit de développement Java (JDK), qui contient les deux
java
et javac
, avec une foule d'autres outils de développement. Le JDK est un sur-ensemble du JRE.
Vous devez vous assurer que vous avez installé le JDK . Si vous n'avez installé que le JRE, vous ne pouvez pas l'exécuter javac
car vous n'avez pas d'installation du compilateur Java sur votre disque dur. Vérifiez votre liste de programmes Windows et assurez-vous que le nom du package Java contient les mots "Kit de développement".
Ne pas utiliser set
(Si vous n'en aviez pas l'intention de toute façon, n'hésitez pas à sauter cette section.)
Plusieurs autres réponses recommandent d'exécuter une variation de:
C:\>:: DON'T DO THIS
C:\>set PATH=C:\Program Files\Java\jdk1.7.0_09\bin
Ne faites pas cela. Il y a plusieurs problèmes majeurs avec cette commande:
- Cette commande efface tout le reste de
PATH
et remplace par le chemin Java. Après avoir exécuté cette commande, il se peut que diverses autres commandes ne fonctionnent pas.
- Votre chemin Java n'est probablement pas
C:\Program Files\Java\jdk1.7.0_09\bin
- vous avez presque certainement une version plus récente du JDK, qui aurait un chemin différent.
- La nouvelle
PATH
s'applique uniquement à la session cmd actuelle. Vous devrez ressaisir la set
commande chaque fois que vous ouvrirez l'invite de commande.
Les points # 1 et # 2 peuvent être résolus avec cette version légèrement meilleure:
C:\>:: DON'T DO THIS EITHER
C:\>set PATH=C:\Program Files\Java\<enter the correct Java folder here>\bin;%PATH%
Mais c'est juste une mauvaise idée en général.
Trouver le chemin Java
La bonne façon commence par trouver où vous avez installé Java. Cela dépend de la façon dont vous avez installé Java.
Installateur Exe
Vous avez installé Java en exécutant un programme d'installation. Le programme d'installation d'Oracle place les versions de Java sous C:\Program Files\Java\
(ou C:\Program Files (x86)\Java\
). Avec l'Explorateur de fichiers ou l'invite de commandes, accédez à ce répertoire.
Chaque sous-dossier représente une version de Java. S'il n'y en a qu'un, vous l'avez trouvé. Sinon, choisissez celui qui ressemble à la version la plus récente. Assurez-vous que le nom du dossier commence par jdk
(par opposition à jre
). Entrez dans le répertoire.
Entrez ensuite dans le bin
répertoire de cela.
Vous êtes maintenant dans le bon répertoire. Copiez le chemin. Si dans l'Explorateur de fichiers, cliquez sur la barre d'adresse. Si dans l'invite de commandes, copiez l'invite.
Le chemin Java résultant doit être sous la forme (sans guillemets):
C:\Program Files\Java\jdkxxxx\bin\
Fichier zip
Vous avez téléchargé un .zip contenant le JDK. Extrayez-le dans un endroit aléatoire où il ne vous gênera pas; C:\Java\
est un choix acceptable.
Localisez ensuite le bin
dossier quelque part à l'intérieur.
Vous êtes maintenant dans le bon répertoire. Copiez son chemin. Ceci est le chemin Java.
N'oubliez pas de ne jamais déplacer le dossier, car cela invaliderait le chemin.
Ouvrez la boîte de dialogue des paramètres
C'est la boîte de dialogue à modifier PATH
. Il existe de nombreuses façons d'accéder à cette boîte de dialogue, selon votre version de Windows, les paramètres de l'interface utilisateur et la façon dont la configuration de votre système est perturbée.
Essayez certains d'entre eux:
- Menu Démarrer / zone de recherche de la barre des tâches »recherche de" variable d'environnement "
- Win + R »
control sysdm.cpl,,3
- Win + R »
SystemPropertiesAdvanced.exe
» Variables d'environnement
- Explorateur de fichiers »tapez dans la barre d'adresse
Control Panel\System and Security\System
» Paramètres système avancés (à l'extrême gauche, dans la barre latérale) »Variables d'environnement
- Bureau »cliquez avec le bouton droit sur ce PC» Propriétés »Paramètres système avancés» Variables d'environnement
- Menu Démarrer »cliquez avec le bouton droit sur l'ordinateur» Propriétés »Paramètres système avancés» Variables d'environnement
- Panneau de configuration (mode icône) »Système» Paramètres système avancés »Variables d'environnement
- Panneau de configuration (mode catégorie) »Système et sécurité» Système »Paramètres système avancés» Variables d'environnement
- Bureau »cliquez avec le bouton droit sur Poste de travail» Avancé »Variables d'environnement
- Panneau de configuration »Système» Avancé »Variables d'environnement
N'importe lequel de ces éléments devrait vous amener à la bonne boîte de dialogue des paramètres.
Si vous utilisez Windows 10, Microsoft vous a béni avec une nouvelle interface utilisateur sophistiquée à modifier PATH
. Sinon, vous verrez PATH
dans toute sa gloire incrustée de points-virgules, enfoncée dans une zone de texte sur une seule ligne. Faites de votre mieux pour apporter les modifications nécessaires sans casser votre système.
Nettoyer PATH
Regardez PATH
. Vous avez presque certainement deux PATH
variables (en raison des variables d'environnement utilisateur / système). Vous devez les regarder tous les deux.
Recherchez d' autres chemins Java et supprimez-les. Leur existence peut provoquer toutes sortes de conflits. (Par exemple, si vous avez JRE 8 et JDK 11 dans PATH
, dans cet ordre, alors javac
invoquera le compilateur Java 11, qui créera les .class
fichiers de la version 55 , mais java
invoquera la JVM Java 8, qui ne prend en charge que jusqu'à la version 52, et vous rencontrerez des erreurs de version non prises en charge et vous ne pourrez pas compiler et exécuter aucun programme.) Contournez ces problèmes en vous assurant que vous n'avez qu'un seul chemin Java PATH
. Et pendant que vous y êtes, vous pouvez également désinstaller les anciennes versions de Java . Et n'oubliez pas que vous n'avez pas besoin d'avoir à la fois un JDK et un JRE.
Si c'est le cas C:\ProgramData\Oracle\Java\javapath
, supprimez-le également . Oracle avait l'intention de résoudre le problème de rupture des chemins Java après les mises à niveau en créant un lien symbolique qui pointerait toujours vers la dernière installation Java. Malheureusement, il finit souvent par pointer vers le mauvais emplacement ou ne fonctionne tout simplement pas . Il est préférable de supprimer cette entrée et de gérer manuellement le chemin Java.
Maintenant, c'est aussi une bonne occasion d'effectuer des tâches ménagères générales PATH
. Si vous avez des chemins relatifs aux logiciels qui ne sont plus installés sur votre PC, vous pouvez les supprimer. Vous pouvez également mélanger l'ordre des chemins (si vous vous souciez de choses comme ça).
Ajouter à PATH
Maintenant, prenez le chemin Java que vous avez trouvé il y a trois étapes et placez-le dans le système PATH
.
Peu importe où dans la liste va votre nouveau chemin; le placer à la fin est un bon choix.
Si vous utilisez l'interface utilisateur antérieure à Windows 10, assurez-vous d'avoir correctement placé les points-virgules. Il devrait y avoir exactement un séparant chaque chemin dans la liste.
Il n'y a vraiment rien d'autre à dire ici. Ajoutez simplement le chemin d'accès à PATH
et cliquez sur OK.
Ensemble JAVA_HOME
Pendant que vous y êtes, vous pouvez aussi bien vous préparer JAVA_HOME
. Il s'agit d'une autre variable d'environnement qui doit également contenir le chemin Java. De nombreux programmes Java et non Java, y compris les systèmes de construction Java populaires Maven et Gradle , génèrent des erreurs s'ils ne sont pas correctement définis.
S'il JAVA_HOME
n'existe pas, créez-le en tant que nouvelle variable d'environnement système. Réglez-le sur le chemin du répertoire Java sans le bin/
répertoire, c'est-à-dire C:\Program Files\Java\jdkxxxx\
.
N'oubliez pas de modifier également JAVA_HOME
après la mise à niveau de Java.
Fermer et rouvrir l'invite de commandes
Bien que vous ayez modifié PATH
, tous les programmes en cours d'exécution, y compris cmd, ne voient que l'ancien PATH
. En effet, la liste de toutes les variables d'environnement n'est copiée dans un programme qu'au début de son exécution; par la suite, il ne consulte que la copie mise en cache.
Il n'y a aucun bon moyen de rafraîchir les variables d'environnement de cmd , fermez simplement l'invite de commande et ouvrez-le à nouveau. Si vous utilisez un IDE, fermez-le et rouvrez-le également.
Voir également