web-dev-qa-db-fra.com

javac ne fonctionne pas dans l'invite de commande Windows

J'essaie d'utiliser javac avec la commande windows Invite, mais cela ne fonctionne pas.

Après avoir ajouté le répertoire "C:\Program Files\Java\jdk1.6.0_16\bin\" à la fin de la variable d'environnement PATH, la commande Java fonctionne correctement, mais l'utilisation de javac me donne l'erreur suivante:

'javac' n'est pas reconnu comme une commande interne ou externe, un programme utilisable ou un fichier de commandes.

117
Domenic

Si vous l'avez ajouté dans le panneau de configuration alors que l'invite de commande était ouverte, cela n'aura aucune incidence sur votre invite de commande actuelle. Vous devrez quitter et ré-ouvrir ou tout simplement faire:

set "path=%path%;c:\program files\Java\jdk1.6.0_16\bin"

En guise de vérification, exécutez:

echo %path%

de votre commande Invite et laissez-nous savoir ce que c'est.

Sinon, assurez-vous que est un javac dans ce répertoire en essayant:

"c:\program files\Java\jdk1.6.0_16\bin\javac.exe"

à partir de l'invite de commande. Vous pouvez aussi dire à quel - exécutable (le cas échéant) utilisé avec la commande:

for %i in (javac.exe) do @echo %~$PATH:i

Cette astuce est similaire aux commandes which et/ou whence de certains systèmes d’exploitation de type UNIX.

144
paxdiablo

Le système d'exploitation Windows recherche dans le répertoire en cours et les répertoires répertoriés dans la variable d'environnement PATH les programmes exécutables. Les programmes de JDK (tels que le compilateur Java javac.exe et le runtime Java Java.exe) résident dans le répertoire "\ bin" (où désigne le répertoire installé par JDK, par exemple, C:\Program Files\Java\jdk1.8.0_xx). Vous devez inclure le répertoire "\ bin" dans le chemin PATH.

Pour éditer la variable d’environnement PATH dans Windows XP/Vista/7/8:

  1. Panneau de configuration ⇒ Système ⇒ Paramètres système avancés

  2. Passer à l'onglet "Avancé" ⇒ Variables d'environnement

  3. Dans "Variables système", faites défiler vers le bas pour sélectionner "CHEMIN" ⇒ Éditer

((lisez maintenant les 3 fois suivantes avant de continuer, THERE IS NO UNDO ))

Dans le champ "Valeur variable", insérez "c:\Program Files\Java\jdk1.8.0_xx\bin" (remplacez xx par le numéro de mise à niveau et VÉRIFIEZ que ceci est le répertoire binaire de votre JDK !!!) devant tous les fichiers existants. répertoires, suivis d'un point-virgule (;) qui sépare le répertoire binaire du JDK du reste des répertoires existants . NE SUPPRIMEZ PAS les entrées existantes; sinon, certaines applications existantes risquent de ne pas s'exécuter.

Variable name  : PATH
Variable value : c:\Program Files\Java\jdk1.8.0_xx\bin;[existing entries...]

Screenshot

85
mike

Après une longue recherche de Google, j’ai appris que javac.exe devait figurer dans JDK (C:\Program Files\Java\jdk (numéro de version)\bin) et non dans JRE ( C:\Program Files (x86)\Java\jre7\bin) "JRE n'est pas livré avec un compilateur. Il (JRE) est simplement un environnement d'exécution Java. Ce dont vous avez besoin, c'est du kit de développement Java." pour utiliser le compilateur javac

javac ne fonctionnera pas si vous pointez bin dans jre

Pour utiliser javac dans cmd, JDK doit être installé sur votre système ...

Pour le chemin javac

chemin = C:\Program Files (x86)\Java\jre7\bin c'est faux 

chemin = C:\Program Files\Java\jdk (numéro de version)\bin ceci est correct

Assurez-vous que "javac.exe" se trouve dans votre "C:\Program Files\Java\jdk (numéro de version)\bin"

Ne vous trompez pas avec JRE et JDK, les deux sont totalement différents 

si vous n'avez pas le téléchargement de fichiers JDK à partir de ce lien http://www.Oracle.com/technetwork/Java/javase/downloads/index.html

fil de référence pour JDK VS JRE Quelle est la différence entre JDK et JRE?

32
TechDog

Je sais que ce n'est peut-être pas votre erreur spécifique, mais j'ai déjà eu un espace dans mon chemin et Java fonctionnerait, mais pas javac. 

Pour ce que cela vaut, j'offre le sage conseil: "Examinez votre chemin de près".

6
Sam

Essayez les solutions ici: http://techdem.centerkey.com/2009/05/javahome-command-script.html

Celles-ci sont beaucoup plus robustes pour changer - comme lors de la mise à niveau du JDK ou du JRE, car il n'y a pas de chemin codé en dur.

La solution rapide (si vous ne voulez pas lire le blog) est

C:\>for /d %i in ("\Program Files\Java\jdk*") do set Java_HOME=%i
C:\>set PATH=%PATH%;%Java_HOME%

Vous pouvez ensuite ajouter ces lignes à un script de démarrage/connexion.

5
Jason

Je devais juste faire cela pour que cela fonctionne sur Windows 7 64.

Ouvrez une commande Invite (cmd.exe) et tapez:

set CLASSPATH=C:\Program Files\Java\jdk1.7.0_01\bin

Assurez-vous de rouvrir toutes les commandes en cours d'exécution, Invite Windows, pour obtenir également la variable d'environnement mise à jour.

3
Ryan Summey

D'accord, cela ne peut pas toujours être le cas, mais beaucoup d'entre nous ont déjà commis cette erreur et peu d'entre eux n'en sont toujours pas conscients, c'est-à-dire qu'à chaque fois que vous ajoutez un chemin (n'importe quel êtes susceptible de frapper la barre d'espace juste après le "point-virgule" (comme vous le feriez normalement, après le "point" tout en tapant dans un éditeur). 

Cela créera un espace principal dans le chemin, par exemple "C:\Program Files\Java\jdk1.6.0\bin" et par conséquent, "javac.exe" ne sera pas trouvé par le système.

3
Malay Desai

Modifiez le dossier "jdk1.7.0_45" "jdk1_7_0_60" et mettez à jour le chemin dans l'environnement Windows. Sinon, le chemin ignore le point à l'avant qui représente le fichier caché et le dossier ne s'affiche donc pas dans les chaînes PATH.

2
NewDev

Assurez-vous de ne pas autoriser d'espaces (espaces blancs) entre les chemins dans la variable Path. Mon problème était que j'avais un espace blanc et je pense que Windows l'a traité comme une valeur NULL et n'a pas lu mon chemin d'accès pour Java.

0
TRHUMMEL

Le chemin ne sera défini que pour le compte administrateur. Par conséquent, il est important de lancer l'invite de commande en tant qu'administrateur, si ce n'est déjà fait.

0
Fredrik Hemsen

Je comprends que c’est une vieille question, mais ma solution n’est pas une réponse, c’est pourquoi vous pouvez la poster au cas où quelqu'un essayerait tout le reste.

Dans mon cas, une installation précédente de JRE Java (dans ProgramData/Oracle/Java) avait une variable de chemin située en haut de ma liste de variables de chemin. Le contenu de ce chemin "Oracle" contenait un fichier Java.exe mais pas un fichier javac.exe . javac.exe ramassé ainsi que Java.

0
Neil
for /d %i in ("\Program Files\Java\jdk*") do set Java_HOME=%i
set Java_HOME

ceci solution a fonctionné pour moi

0
Cristian Agudelo

J'avais le même problème posté dans ce titre. Java fonctionnerait, mais javac ne serait pas dans l'invite de commande Windows (cmd.exe).

Pour moi, c'était simplement que j'avais placé un espace lors de l'ajout de C:\Program Files\Java\jdk1.8.0\bin à la fin de ma variable d'environnement %PATH%.
Supprimez l'espace entre le ; et le chemin du fichier suivant.

0
Taiton

J'ai rencontré exactement le même problème que Java mais javac ne fonctionnerait pas avec une invite de commande dans Windows 8.

Le problème est dû au fait que j’ai oublié de supprimer '>' à la fin du nom du chemin, c’est-à-dire comme ceci:

C:\Program Files\Java\jdk*\bin>

où il était supposé être comme ça:

C:\Program Files\Java\jdk*\bin
0
Kevin