it-swarm.com.de

'C:\Program' wird nicht erkannt

Ich habe vor kurzem versucht, meine Umgebungsvariablen zu ändern, um unter anderem die Pfade auf javac.exe festzulegen. Es hat gut funktioniert, bis ich plötzlich diesen Fehler bekam. Zum Beispiel habe ich eine Java_HOME-Variable als deklariert 

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

Danach füge ich hinzu 

%Java_HOME%\bin

auf die PATH-Variable, aber dies gibt mir einen Fehler:

'C:\Program' wird nicht als interner oder externer Befehl, bedienbarer Befehl oder Stapelverarbeitungsdatei erkannt.

Dieser Fehler lässt den Anschein erwecken, als ob es Probleme mit dem Speicherplatz in "Programme" gibt. Dies ist jedoch seltsam, da es dies eine Zeit lang nicht tat und dann begann. Außerdem gibt es andere Variablen mit Leerzeichen, die gut funktionieren. Ich habe versucht, die Variable zu löschen und neu zu erstellen, indem Sie Java_HOME in Anführungszeichen setzen (was zum richtigen Pfad führt, die Datei javac.exe jedoch nicht richtig findet).

Irgendwelche Tipps, was ich tun könnte?

Dies ist unter Windows 7.

BEARBEITEN:

Die Umgebungsvariablen wurden über Systemsteuerung> Erweiterte Systemeinstellungen> Umgebungsvariablen festgelegt. Der Wert der Variablen wurde durch Kopieren der Adresse des gewünschten Ordners durch ein Explorer-Fenster festgelegt. Ich fügte es der Umgebungsvariable PATH hinzu, indem ich die Adresse mit einem Leerzeichen zwischen der vorhergehenden Variablen und einem Semikolon am Ende anhatte: 

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

wo die Java_HOME-Variable als solche definiert ist:

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

Ich teste den Wert der Variablen über eine Eingabeaufforderung, indem ich% Java_HOME% eingebe. Dort bekomme ich den Fehler "C:\Program" wird nicht erkannt ... "

Die Ergebnisse von 'set' lauten wie folgt:

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

Okay, das macht es klarer.

Hier gibt es zwei Hauptprobleme.

Der Grund, warum Sie 'C:\Program' is not recognized... erhalten, ist natürlich, dass es Leerzeichen enthält. Die Tatsache, dass Sie es in der Umgebungsvariablen PATH angegeben haben, hat keine Beziehung dazu, wie % Java_HOME% an der Eingabeaufforderung interpretiert wird. Sie haben zwei Möglichkeiten.

  1. Zitiere es, wenn du die Variable definierst, d. H. Setze Java_HOME auf "C:\Program Files\Java\jdk1.7.0_25"
  2. Zitiere es, wenn du es aufrufst. Geben Sie an der Eingabeaufforderung "%Java_HOME%\bin" ein. Natürlich wird der Fehler "Wird nicht als interner oder externer Befehl, ausführbares Programm oder Batchdatei erkannt" angezeigt, es sei denn, Sie beenden den Pfad mit einer ausführbaren Datei (z. B. "%Java_HOME%\bin\javac.exe"). Dies wird jedoch auf diese Weise angezeigt Es beschwert sich über '"C:\Programme\Java\jdk1.7.0_25"' und nicht über 'C:\Programme'.

Zweitens können Sie im Pfad keine Umgebungsvariablen verwenden. Sie können Umgebungsvariablen verwenden , wenn Sie den Pfad an der Eingabeaufforderung festlegen. Zum Beispiel,

set PATH=%PATH%;%Java_HOME%

wird funktionieren, aber das liegt daran, dass % Java_HOME% in der Befehlszeile erweitert wird und PATH auf das Ergebnis gesetzt wird. Wenn Sie den Wert von PATH überprüfen, werden Sie feststellen, dass er mit C:\Programme\Java\jdk1.7.0_25 endet, nicht mit % Java_HOME%.

Befindet sich javac.exe im Unterverzeichnis bin, müssen Sie dies in den Pfad aufnehmen, d. H. ;C:\Program Files\Java\jdk1.7.0_25\bin zum Pfad hinzufügen.

(Übrigens haben Sie % Java_HOME% zweimal im Pfad, und nach dem zweiten steht ein zusätzliches Semikolon.)

22
Adi Inbar

Eine andere Lösung ist, dies zu tun: C:\Program Files hat einen kurzen Namen 

C:\Progra ~ 1

in den Fenstern. 

schreiben Sie also einfach Progra ~ 1 anstelle der Programmdateien. {hinzugefügtes fehlendes 'r'}

26
adhg

Ist der Pfad, in dem Sie die Java_HOME-Umgebungsvariable festlegen, eine Benutzervariable oder eine Systemvariable? Sie können keine Benutzervariablen in Systemvariablen verwenden. Wenn also Java_HOME als Benutzervariable definiert ist und Sie es Ihrem Systempfad hinzufügen, funktioniert das nicht.

Aus der Ausgabe Ihres Befehls set sieht es so aus, als würde% Java_HOME% nicht aufgelöst. Es sollte die erweiterte Version und nicht die mit% -Zeichen angezeigt werden.

Fügen Sie eine Path-Benutzervariable hinzu und fügen Sie% Java_HOME%\bin hinzu. Windows fügt Ihren Benutzerpfad am Ende des Systempfads hinzu.

Sie sollten keine Anführungszeichen in der Java_HOME-Variablen benötigen, auch wenn diese Leerzeichen enthält.

2
andrea

Obwohl Adi Inbar das Problem ziemlich genau kennt, denke ich, dass seine Problemumgehung nicht die beste Lösung ist, da es versucht, das ursprüngliche Problem zu umgehen: Leerzeichen im Pfad Ihrer JDK-Installation. 

Der beste Weg, um Ihr Problem zu lösen, ist die Neuinstallation von JDK in einem Pfad ohne Leerzeichen. Alle anderen Problemumgehungen verursachen auf lange Sicht Kopfschmerzen. 

1
DigCamara

wenn Sie Windows 10 verwenden, verwenden Sie "Durchsuchen" anstelle von "Text bearbeiten". Ich hatte ein ähnliches Problem und dieses Problem wurde mit der obigen Methode gelöst. 

Hoffe das hilft!

 enter image description here

0

fügen Sie einfach cd hinzu, bevor Sie den Speicherort hinzufügeneg: statt 

C:\Programme\Java\jdk1.7.0_25

benutzen

cd C:\Programme\Java\jdk1.7.0_25

das hat mir geholfen.

0
Ronak