web-dev-qa-db-fra.com

'C:\Program' n'est pas reconnu erreur

J'ai récemment essayé de modifier mes variables d'environnement pour définir les chemins d'accès sur javac.exe (entre autres). Cela fonctionnait bien jusqu'à ce que, tout à coup, j'ai commencé à avoir cette erreur. Par exemple, j'ai déclaré une variable Java_HOME comme étant 

C:\Program Files\Java\jdk1.7.0_25

Après quoi, j'ajoute 

%Java_HOME%\bin

à la variable PATH, mais cela me donne une erreur:

'C:\Program' n'est pas reconnu comme une commande interne ou externe, une commande utilisable ou un fichier de commandes.

Cette erreur donne l'impression que des problèmes d'espace sont rencontrés dans "Program Files". C'est bizarre, cependant, puisqu'il n'a pas fait cela pendant un bon bout de temps, puis a commencé. En outre, il existe d’autres variables contenant des espaces qui fonctionnent parfaitement. J'ai essayé de supprimer et de recréer la variable, en mettant des guillemets autour de Java_HOME (qui indique le chemin correct, mais ne trouve pas javac.exe correctement).

Des conseils sur ce que je pourrais faire?

Ceci est sur Windows 7.

MODIFIER:

Les variables d'environnement ont été définies dans Panneau de configuration> Paramètres système avancés> Variables d'environnement. La valeur des variables a été définie en copiant l'adresse du dossier que je veux via une fenêtre de l'Explorateur. Je l'ai ajouté à la variable d'environnement PATH en ajoutant l'adresse avec un espace entre la variable précédente et un point-virgule à la fin, en tant que tel: 

C:\Users\Demo_User_1\AppData\Roaming\npm; %Java_HOME%

où la variable Java_HOME est définie comme telle:

C:\Program Files\Java\jdk1.7.0_25

Je teste la valeur de la variable via une invite de commande en tapant% Java_HOME%, et c’est là que l’erreur résultant "" C:\Programme "n’est pas reconnue ..."

Les résultats de 'set' sont les suivants:

C:\Users\Demo_User_1>set
ALLUSERSPROFILE=C:\ProgramData
Android_HOME=C:\Users\Demo_User_1\Desktop\Android\adt-bundle-windows-x86_64-2013
0717\sdk
APPDATA=C:\Users\Demo_User_1\AppData\Roaming
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
COMPUTERNAME=DEMO_USER_1-HP
ComSpec=C:\Windows\system32\cmd.exe
FP_NO_Host_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Users\Demo_User_1
Java_HOME=C:\Program Files\Java\jdk1.7.0_25
LOCALAPPDATA=C:\Users\Demo_User_1\AppData\Local
LOGONSERVER=\\DEMO_USER_1-HP
NUMBER_OF_PROCESSORS=4
OnlineServices=Online Services
OS=Windows_NT
Path=C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Clien
t\;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files
(x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;
C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program
Files (x86)\Windows Live\Shared;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\
x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\Program Files\Intel\I
ntel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Managem
ent Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engin
e Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Compone
nts\IPT;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\Wir
elessCommon\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files
 (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\;C:\Program Files (x86)\Windows
Kits\8.0\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\
Tools\Binn\;C:\Program Files\nodejs\; C:\Users\Demo_User_1\Desktop\Android\adt-b
undle-windows-x86_64-20130717\sdk/platform-tools; C:\Users\Demo_User_1\Desktop\A
ndroid\adt-bundle-windows-x86_64-20130717\sdk\tools; %Java_HOME%; %ANT_HOME%/bin
; C:\Program Files\Java\jdk1.7.0_25\bin; C:\Users\Demo_User_1\AppData\Roaming\np
m; "%Java_HOME%"; ;C:\Users\Demo_User_1\Desktop\Android\adt-bundle-windows-x86_6
4-20130717\sdk/tools; C:\Users\Demo_User_1\Desktop\Android\adt-bundle-windows-x8
6_64-20130717\sdk/platform-tools
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PCBRAND=Pavilion
Platform=MCD
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 58 Stepping 9, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=3a09
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files
Prompt=$P$G
PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
PUBLIC=C:\Users\Public
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\Windows
TEMP=C:\Users\DEMO_U~1\AppData\Local\Temp
TMP=C:\Users\DEMO_U~1\AppData\Local\Temp
USERDOMAIN=Demo_User_1-HP
USERNAME=Demo_User_1
USERPROFILE=C:\Users\Demo_User_1
VS110COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools
\
windir=C:\Windows
windows_tracing_flags=3
windows_tracing_logfile=C:\BVTBin\Tests\installpackage\csilogfile.log
18
derekahc

Ok, ça rend les choses plus claires.

Il y a deux problèmes principaux ici.

Tout d’abord, la raison pour laquelle vous obtenez 'C:\Program' is not recognized... est, bien sûr, parce qu’il contient des espaces. Le fait qu'il soit cité dans la variable d'environnement PATH n'a aucun lien avec la façon dont % Java_HOME% est interprété à l'invite. Vous avez deux options. 

  1. Citez-le lorsque vous définissez la variable, c.-à-d. Définissez Java_HOME sur "C:\Program Files\Java\jdk1.7.0_25"
  2. Citez-le quand vous l'invoquez. Tapez "%Java_HOME%\bin" à l'invite. Bien sûr, vous obtiendrez l’erreur "non reconnu en tant que commande, programme utilisable ou fichier de commandes interne ou externe" à moins que vous ne terminiez le chemin par un fichier exécutable (par exemple, "%Java_HOME%\bin\javac.exe"), mais vous verrez que, de cette façon, il se plaint de '"C:\Program Files\Java\jdk1.7.0_25"' plutôt que 'C:\Programme'.

Deuxièmement, vous ne pouvez pas utiliser de variables d'environnement dans le chemin. Vous pouvez utiliser des variables d'environnement lorsque vous définissez le chemin à l'aide de la commande Invite. Par exemple,

set PATH=%PATH%;%Java_HOME%

fonctionnera, mais c’est parce que % Java_HOME% est développé sur la ligne de commande et que CHEMIN est défini sur le résultat. Si vous vérifiez la valeur de CHEMIN, vous verrez qu'elle se termine par C:\Program Files\Java\jdk1.7.0_25} _, pas % Java_HOME%.

De plus, si javac.exe _ est dans le sous-répertoire bin, vous devrez l’inclure dans le chemin, c’est-à-dire ajouter ;C:\Program Files\Java\jdk1.7.0_25\bin au chemin.

(En passant, vous avez % Java_HOME% dans le chemin deux fois, et il y a un point-virgule supplémentaire après le second.)

22
Adi Inbar

Une autre solution consiste à faire ceci: C:\Program Files a un nom court 

C:\Progra ~ 1

dans les fenêtres. 

il suffit donc d’écrire Progra ~ 1 au lieu de Program Files. {ajouté 'r' manquant}

26
adhg

Le chemin que vous définissez la variable d’environnement Java_HOME est-il une variable utilisateur ou une variable système? Vous ne pouvez pas utiliser de variables utilisateur dans les variables système. Donc, si Java_HOME est défini en tant que variable utilisateur et que vous l'ajoutez à votre chemin système, cela ne fonctionnera pas.

D'après le résultat de votre commande set, il semble que% Java_HOME% ne soit pas résolu. Il devrait montrer la version développée et non pas celle avec% de signes dans.

Ajoutez une variable utilisateur Path et ajoutez-y% Java_HOME%\bin. Windows ajoutera votre chemin utilisateur à la fin du chemin système.

Vous ne devriez pas avoir besoin de guillemets dans la variable Java_HOME, même si celle-ci contient des espaces.

2
andrea

Même si Adi Inbar est assez clair sur le problème, je pense que sa solution de contournement n'est pas la meilleure solution, car il tente de corriger le problème d'origine: des espaces dans le chemin de votre installation JDK. 

Le meilleur moyen de résoudre votre problème consiste à réinstaller JDK sur un chemin d'accès sans espace. Toutes les autres solutions de contournement vous causeront des maux de tête à long terme. 

1
DigCamara

si vous utilisez Windows 10, utilisez Parcourir le dossier plutôt que Modifier le texte. J'ai eu un problème similaire et cela a été résolu en utilisant la méthode ci-dessus. 

J'espère que cela t'aides!

 enter image description here

0
Jagdish Chichria

il suffit d’ajouter un cd avant d’ajouter l’emplacement. 

C:\Program Files\Java\jdk1.7.0_25

utilisation

cd C:\Program Files\Java\jdk1.7.0_25

cela m'a aidé.

0
Ronak