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 j'ai le dernier JDK installé.
J'ai tenté une solution impliquant la PATH
variable, mais l'erreur persiste.
Sortie 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.
java
path
environment-variables
command-prompt
javac
user987137
la source
la source
Réponses:
TL; DR
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
'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 avecPATH
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:
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:Lorsque vous exécutez
javac HelloWorld.java
, cmd, après avoir réalisé qu'iljavac
ne s'agit pas d'une commande interne , recherche le systèmePATH
suivi par l'utilisateurPATH
. Il pénètre mécaniquement tous les répertoires dans la liste, et vérifie sijavac.com
,javac.exe
,javac.bat
, etc. est présent. Quand il trouvejavac
, 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:
java
mais pasjavac
.java
etjavac
, 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:
Ne faites pas cela. Il y a plusieurs problèmes majeurs avec cette commande:
PATH
et remplace par le chemin Java. Après avoir exécuté cette commande, il se peut que diverses 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 actuelle. Vous devrez ressaisir laset
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:
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\
(ouC:\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):
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:
control sysdm.cpl,,3
SystemPropertiesAdvanced.exe
» Variables d'environnementControl Panel\System and Security\System
» Paramètres système avancés (à l'extrême gauche, dans la barre latérale) »Variables d'environnementN'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 verrezPATH
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 deuxPATH
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, alorsjavac
invoquera le compilateur Java 11, qui créera les.class
fichiers de la version 55 , maisjava
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 JavaPATH
. 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 lebin/
répertoire, c'est-à-direC:\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'ancienPATH
. 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
la source
essayez ceci .. je l'ai eu aussi mais maintenant il a résolu dans XP ..
la source
Vous avez mal saisi la
set
commande - vous avez manqué la barre oblique inverse aprèsC:
. Ça devrait être:la source
C:\Program Files (x86)\Java\jdk1.7.0
? Si oui, que se passe-t-il si vous le faitescd C:\Program Files (x86)\Java\jdk1.7.0\bin
et ensuitejavac -version
?Exécutez ce qui suit à partir de l'invite de commande:
set Path="C:\Program Files\Java\jdk1.7.0_09\bin"
ouset PATH="C:\Program Files\Java\jdk1.7.0_09\bin"
J'ai essayé cela et cela fonctionne bien.
la source
Si la commande java fonctionne et rencontre un problème avec javac. puis vérifiez d'abord dans le répertoire bin du jdk le fichier javac.exe est là ou non. Si le fichier javac.exe existe, définissez-le
JAVA_HOME
comme variable système.la source
Vérifiez vos variables d'environnement.
Dans mon cas, JAVA_HOME était défini dans les variables système ainsi que dans les variables de mon compte utilisateur et cette dernière était définie sur une mauvaise version de Java . J'ai également eu le même problème avec la variable Path.
Après avoir supprimé JAVA_HOME de mes variables de compte d'utilisateur et supprimé le mauvais chemin de la variable Path, cela a fonctionné correctement.
la source