Je rencontre une erreur en essayant de compiler des programmes Java.
Je suis sous Windows (il s'agit d'un problème spécifique à Windows) et le dernier JDK est installé.
J'ai tenté une solution impliquant la variable PATH
, mais l'erreur persiste.
Sortie de la console:
C:\>set path=C:Program Files (x86)\Java\jdk1.7.0\bin
C:\>javac Hello.Java
'javac' is not recognized as an internal or external command,
operable program or batch file.
Pour les lecteurs expérimentés:
C:\Program Files\Java\jdkxxxx\bin\
_PATH
. Supprimez les anciens chemins Java.PATH
.Java_HOME
_.Bienvenue!
Vous avez rencontré l'un des problèmes techniques les plus notoires auxquels sont confrontés les débutants Java: le message d'erreur _'xyz' is not recognized as an internal or external command...
_.
En un mot, vous n'avez pas installé Java correctement . La finalisation de l'installation de Java sous Windows nécessite certaines étapes manuelles. Vous devez toujours suivre ces étapes après l'installation de Java, y compris après la mise à niveau du JDK.
PATH
(Si vous comprenez déjà cela, n'hésitez pas à sauter les trois prochaines sections.)
Lorsque vous exécutez _javac HelloWorld.Java
_, cmd doit déterminer où se trouve _javac.exe
_. 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 livrés 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 : variables d’environnement utilisateur et 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
. C'est une liste de chemins, séparés par _;
_. Lorsqu'une commande est entrée dans cmd, chaque répertoire de la liste est analysé pour rechercher un exécutable correspondant.
Sur mon ordinateur, PATH
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, lorsque vous réalisez que javac
n'est pas un commande interne , recherche système PATH
suivi de l'utilisateur PATH
. Il entre mécaniquement tous les répertoires de la liste et vérifie si _javac.com
_, _javac.exe
_, _javac.bat
_, etc. est présent. Lorsqu'il trouve javac
, il l'exécute. Quand ce n'est pas le cas, il affiche _'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
.
(Si vous comprenez déjà cela, n'hésitez pas à sauter cette section.)
Lors du téléchargement de Java, vous avez le choix entre:
Java
mais pas javac
.Java
et javac
, ainsi qu'un hôte 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 avez uniquement installé le JRE, vous ne pouvez pas exécuter javac
car le compilateur Java n'est pas installé sur votre disque dur. Vérifiez votre liste de programmes Windows et assurez-vous que le nom du paquet Java contient les mots "Kit de développement".
set
(Si vous n'aviez pas l'intention de le faire, n'hésitez pas à sauter cette section.)
Plusieurs autres réponses recommandent d’exécuter certaines variantes 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:
PATH
et le remplace par le chemin Java. Après avoir exécuté cette commande, il est possible que plusieurs autres commandes ne fonctionnent 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.PATH
s'applique uniquement à la session cmd en cours. Vous devrez ressaisir la commande set
chaque fois que vous ouvrirez l'invite de commande.Les points n ° 1 et n ° 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 ce n'est qu'une mauvaise idée en général.
La bonne façon commence par trouver où vous avez installé Java. Cela dépend de comment vous avez installé Java.
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 Explorateur de fichiers ou 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 le répertoire.
Ensuite, entrez le répertoire bin
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 vous êtes dans l'invite de commande, copie l'invite.
Le chemin Java résultant doit être sous la forme (sans guillemets):
_C:\Program Files\Java\jdkxxxx\bin\
_
Vous avez téléchargé un fichier .Zip contenant le JDK. Extrayez-le dans un endroit aléatoire où il ne vous gênera pas; _C:\Java\
_ est un choix acceptable.
Ensuite, localisez le dossier bin
quelque part dans celui-ci.
Vous êtes maintenant dans le bon répertoire. Copiez son chemin. C'est le chemin Java.
Rappelez-vous de ne jamais déplacer le dossier, car cela invaliderait le chemin.
C’est le dialogue pour éditer PATH
. Il existe de nombreuses façons d'accéder à cette boîte de dialogue, en fonction de la version de Windows, des paramètres de l'interface utilisateur et de la configuration de votre système.
Essayez-en quelques-unes:
control sysdm.cpl,,3
_SystemPropertiesAdvanced.exe
_" Variables d'environnementControl Panel\System and Security\System
_" Paramètres système avancés (extrême gauche, dans la barre latérale) "Variables d'environnementN'importe lequel d'entre eux devrait vous mener à la boîte de dialogue des paramètres appropriés.
Si vous utilisez Windows 10, Microsoft vous a accordé une nouvelle interface utilisateur élégante pour modifier PATH
. Sinon, vous verrez PATH
dans toute sa splendeur incrustée de points-virgules, insérée dans une zone de texte d'une seule ligne. Faites de votre mieux pour apporter les modifications nécessaires sans casser votre système.
PATH
Regardez PATH
. Vous avez presque certainement deux variables PATH
(en raison des variables d'environnement utilisateur/système). Vous devez regarder les deux.
Recherchez d'autres Java chemins 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, javac
invoquera le compilateur Java 11, qui créera des fichiers de version 55 _.class
_, mais Java
invoquera la machine virtuelle Java Java 8, qui ne prend en charge que la version 52, et vous rencontrerez erreurs de version non prises en charge et ne serez pas en mesure de compiler et d'exécuter des programmes.) Évitez ces problèmes en faisant Assurez-vous de n’avoir qu’un chemin Java dans PATH
. Et pendant que vous y êtes, vous pouvez également désinstaller les anciennes versions Java . Et rappelez-vous que vous n'avez pas besoin d'avoir un JDK et un JRE.
Si vous avez _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 indiquer 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.
C’est aussi une bonne occasion d’effectuer des tâches ménagères générales sur PATH
. Si des chemins relatifs à des logiciels 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).
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ù votre nouveau chemin va dans la liste; le placer à la fin est un bon choix.
Si vous utilisez l'interface utilisateur antérieure à Windows 10, assurez-vous d'avoir placé les points-virgules correctement. Il devrait y avoir exactement un séparant chaque chemin de la liste.
Il n'y a vraiment pas grand chose d'autre à dire ici. Ajoutez simplement le chemin à PATH
et cliquez sur OK.
Java_HOME
_Pendant que vous y êtes, vous pouvez également définir _Java_HOME
_. Ceci est une autre variable d'environnement qui devrait également contenir le chemin Java. De nombreux programmes Java et non Java, y compris le populaire système de construction Java Gradle , généreront des erreurs s'il n'est pas correctement défini.
Si _Java_HOME
_ n'existe pas, créez-le en tant que nouvelle variable d'environnement système. Définissez-le sur le même chemin Java que vous avez ajouté à PATH
.
Pensez également à modifier _Java_HOME
_ après la mise à niveau de Java.
Bien que vous ayez modifié PATH
, tous les programmes en cours, 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 que lorsqu'il commence à s'exécuter. par la suite, il ne consulte que la copie en cache.
Il n'y a pas de bon moyen de rafraîchir les variables d'environnement de cmd , fermez donc simplement Invite de commandes et ouvrez-le à nouveau. Si vous utilisez un IDE, fermez-le et rouvrez-le également.
essayez ceci .. je l'avais aussi mais maintenant, il a résolu dans XP ..
C:\ YourFolder >set path=C:\Program Files\Java\jdk1.7.0_09\bin;
C:\ YourFolder >javac YourCode.Java
Vous avez mal saisi la commande set
- vous avez manqué la barre oblique inverse après C:
. CA devrait etre:
C:\>set path=C:\Program Files (x86)\Java\jdk1.7.0\bin
Exécutez les commandes suivantes à partir de l'invite de commande: set Path="C:\Program Files\Java\jdk1.7.0_09\bin"
ou set PATH="C:\Program Files\Java\jdk1.7.0_09\bin"
J'ai essayé cela et ça marche bien.
Si la commande Java fonctionne et que javac pose un problème. puis vérifiez d’abord que le fichier javac.exe du répertoire bin de jdk est présent ou non. Si le fichier javac.exe existe, définissez Java_HOME
en tant que variable système.
Vérifiez vos variables d'environnement.
Dans mon cas, Java_HOME était défini dans les variables variables système ainsi que dans mes variables compte d'utilisateur et cette dernière était définie sur un version incorrecte de Java =. J'ai également eu le même problème avec la variable Path.
Après suppression de Java_HOME de mon compte utilisateur variables et suppression du mauvais chemin de la variable Path, cela fonctionnait correctement.