Подтвердить что ты не робот

'C:\Program' не распознается ошибка

Недавно я попытался изменить переменные среды, чтобы указать пути к javac.exe(между прочим). Он работал нормально до тех пор, пока я не начал эту ошибку. Например, я объявил переменную JAVA_HOME равной

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

После этого я добавляю

%JAVA_HOME%\bin

к переменной PATH, но это дает мне ошибку:

'C:\Program' не распознается как внутренняя или внешняя команда, оперативная команда или командный файл.

Эта ошибка приводит к возникновению проблем с пространством в "Program Files". Это странно, хотя, поскольку это не делалось так хорошо, тогда началось. Кроме того, существуют и другие переменные с пробелами в них, которые работают нормально. Я попытался удалить переменную и воссоздать ее, помещая кавычки вокруг JAVA_HOME (который идет по правильному пути, но не находит javac.exe правильно).

Какие-нибудь советы о том, что я могу сделать?

Это в Windows 7.

EDIT:

Переменные среды были заданы с помощью панели управления > Дополнительные параметры системы > Переменные среды. Значение переменных было установлено путем копирования адреса папки, которую я хочу, через окно проводника. Я добавил его в переменную среды PATH, добавив адрес с пробелом между предыдущей переменной и точкой с запятой в конце, как таковой:

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

где переменная JAVA_HOME определяется как таковая:

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

Я проверяю значение переменной через командную строку, набрав% JAVA_HOME%, и что, когда я получаю результирующую ошибку "C:\Program", не распознается... "

Результаты "набора" следующие:

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
4b9b3361

Ответ 1

Хорошо, это делает его более ясным.

Здесь есть две основные проблемы.

Прежде всего, причина, по которой вы получаете 'C:\Program' is not recognized..., конечно, потому что она содержит пробелы. Тот факт, что вы его цитировали в переменной среды PATH, не имеет никакого отношения к тому, как интерпретируется % JAVA_HOME% в подсказке. У вас есть два варианта.

  • Цитировать, когда вы определяете переменную, т.е. установите JAVA_HOME на "C:\Program Files\Java\jdk1.7.0_25"
  • Цитировать, когда вы его вызываете. Введите "%JAVA_HOME%\bin" в командной строке. Конечно, вы получите сообщение "не распознано как внутренняя или внешняя команда, операционная программа или командный файл", если вы не закончите путь с исполняемым файлом (например, "%JAVA_HOME%\bin\javac.exe"), но вы увидите, что таким образом он жалуется о ' "C:\Program Files\Java\jdk1.7.0_25" , а не ' C:\Program '.

Во-вторых, вы не можете использовать переменные среды в пути. Вы можете использовать переменные среды, когда вы устанавливаете путь в командной строке. Например,

set PATH=%PATH%;%JAVA_HOME%

будет работать, но это потому, что в командной строке расширено % JAVA_HOME%, а результат PATH. Если вы проверите значение PATH, вы увидите, что он заканчивается на C:\Program Files\Java\jdk1.7.0_25, а не % JAVA_HOME%.

Кроме того, если javac.exe находится в подкаталоге bin, вам нужно включить его в путь, то есть добавить ;C:\Program Files\Java\jdk1.7.0_25\bin в путь.

(Кстати, у вас есть % JAVA_HOME% в пути два раза, а после второй - вторая точка с запятой.)

Ответ 2

Еще одно решение: C:\Program Files имеет короткое имя

C:\Progra ~ 1

в окнах.

поэтому просто напишите Progra ~ 1 вместо файлов программы. {добавлен недостающий 'r'}

Ответ 3

Является ли путь, по которому вы устанавливаете переменную среды JAVA_HOME в пользовательской переменной или системной переменной? Вы не можете использовать переменные пользователя в системных переменных. Поэтому, если JAVA_HOME определяется как пользовательская переменная, и вы добавляете его на свой системный путь, который не будет работать.

Из вывода команды set это выглядит как% JAVA_HOME% не разрешается. Он должен показать расширенную версию, а не та, у которой есть знаки%.

Добавьте пользовательскую переменную Path и добавьте к ней% JAVA_HOME%\bin. Windows добавит ваш пользовательский путь в конец системного пути.

Вам не нужны кавычки в переменной JAVA_HOME, даже если они содержат пробелы.

Ответ 4

Несмотря на то, что Adi Inbar довольно ясен в этой проблеме, я думаю, что его решение не является лучшим решением, поскольку оно пытается исправить исходную проблему: пробелы на пути вашей установки JDK.

Лучший способ решить вашу проблему - это переустановка JDK в путь без пробелов. Все другие обходные пути вызовут головные боли в долгосрочной перспективе.

Ответ 5

просто добавьте cd перед добавлением местоположения например: вместо

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

использование

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

это помогло мне.

Ответ 6

если у вас Windows 10, используйте "Обзор папок", а не "Редактировать текст". У меня была похожая проблема, и это было решено с использованием вышеуказанного метода.

Надеюсь, это поможет!

enter image description here