it-swarm.com.ru

javac не работает в командной строке Windows

Я пытаюсь использовать javac с командой Windows Prompt, но она не работает.

После добавления каталога "C:\Program Files\Java\jdk1.6.0_16\bin\" в конец переменной среды PATH команда Java работает нормально, но использование javac выдает следующую ошибку:

«javac» не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл.

117
Domenic

Если вы добавили его в панель управления, когда ваша командная строка была открыта, это не повлияет на текущую командную строку. Вам нужно выйти и снова открыть или просто сделать:

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

Для проверки выполните:

echo %path%

от вашей команды Подскажите и дайте нам знать, что это такое.

В противном случае убедитесь, что в этом каталоге находится is javac, выполнив:

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

из командной строки. Вы также можете указать который исполняемый файл (если есть) используется с командой:

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

Это хитрый прием, похожий на команды which и/или whence в некоторых операционных системах типа UNIX.

144
paxdiablo

ОС Windows выполняет поиск текущего каталога и каталогов, перечисленных в переменной среды PATH, для поиска исполняемых программ. Программы JDK (такие как Java-компилятор javac.exe и Java runtime Java.exe) находятся в каталоге "\ bin" (где обозначает установленный каталог JDK, например, C:\Program Files\Java\jdk1.8.0_xx). Вам необходимо включить каталог «\ bin» в PATH.

Чтобы изменить переменную среды PATH в Windows XP/Vista/7/8:

  1. Панель управления ⇒ Система ⇒ Расширенные настройки системы

  2. Перейти на вкладку «Дополнительно» ⇒ Переменные среды

  3. В «Системных переменных» прокрутите вниз, чтобы выбрать «ПУТЬ» ⇒ «Редактировать».

((теперь прочитайте следующие 3 раза, прежде чем продолжить, ТАМ IS НЕТ ОТМЕНЫ ))

В поле «Значение переменной» ВСТАВЬТЕ «c:\Program Files\Java\jdk1.8.0_xx\bin» (замените xx номером обновления и ПРОВЕРЬТЕ, что это двоичный каталог вашего JDK !!!) В ПЕРЕД всеми существующими каталоги, за которыми следует точка с запятой (;), которая отделяет двоичный каталог JDK от остальных существующих каталогов . НЕ УДАЛЯТЬ существующие записи; в противном случае некоторые существующие приложения могут не работать.

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

Screenshot

85
mike

После долгого Google я узнал, что javac.exe должен быть внутри JDK (C:\Program Files\Java\jdk (номер версии)\bin), а не внутри JRE ( C:\Program Files (x86)\Java\jre7\bin) "JRE не поставляется с компилятором. Это (JRE) просто среда выполнения Java. Что вам нужно, так это комплект разработки Java." чтобы использовать компилятор javac

javac не будет работать, если вы указываете бин внутри JRE

Чтобы использовать javac в cmd, в вашей системе должен быть установлен JDK ...

Для пути Javac

path = C:\Program Files (x86)\Java\jre7\bin это неправильно 

path = C:\Program Files\Java\jdk (номер версии)\bin это правильно

Убедитесь, что "javac.exe" находится внутри вашего "C:\Program Files\Java\jdk (номер версии)\bin"

Не путайте с JRE и JDK, оба совершенно разные 

если у вас нет JDK, пожалуйста, скачайте по этой ссылке http://www.Oracle.com/technetwork/Java/javase/downloads/index.html

эталонная нить для JDK VS JRE В чем разница между JDK и JRE?

32
TechDog

Я знаю, что это может быть не вашей конкретной ошибкой, но когда-то у меня был начальный пробел на моем пути, и Java работала бы, а javac - нет. 

Для чего бы это ни стоило, я предлагаю мудрый совет: «Внимательно изучите свой путь».

6
Sam

Попробуйте решения здесь: http://techdem.centerkey.com/2009/05/javahome-command-script.html

Их гораздо надежнее изменить - например, при обновлении JDK или JRE, поскольку нет жестко закодированного пути.

Быстрое решение (если вы не хотите читать блог)

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

Затем вы можете добавить эти строки в скрипт запуска/входа в систему.

5
Jason

Я просто должен был сделать это, чтобы заставить это работать на Windows 7 64.

Откройте командную строку (cmd.exe) и введите:

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

Убедитесь, что вы снова открыли все запущенные командные строки Windows, чтобы обновить переменную среды.

3
Ryan Summey

Хорошо, это не может быть всегда, но многие из нас делали эту ошибку в прошлом, и немногие из них все еще не знают об этом, то есть каждый раз, когда вы добавляете путь (любой путь) к любой переменной среды, вы Вы, вероятно, попадете на пробел сразу после «точки с запятой» (как обычно, после «точки» при вводе в редакторе). 

Это создаст начальный пробел в пути, например, «C:\Program Files\Java\jdk1.6.0\bin», и, следовательно, «javac.exe» не будет найден системой.

3
Malay Desai

Измените папку «jdk1.7.0_45» на «jdk1_7_0_60» и обновите путь в среде Windows. В противном случае путь игнорирует точку спереди, которая обозначает скрытый файл, поэтому папка не отображается в строках PATH.

2
NewDev

Убедитесь, что вы не допускаете пробелы (пробелы) между путями в переменной Path. Моя проблема заключалась в том, что у меня было пустое пространство, и я считаю, что Windows воспринимала его как NULL и не читала мой путь для Java.

0
TRHUMMEL

Путь будет установлен только для учетной записи администратора. Поэтому важно запустить команду Prompt от имени администратора, если вы этого еще не сделали.

0
Fredrik Hemsen

Я ценю, что это старый вопрос сейчас, но мое решение не было здесь ответа, поэтому публикуем его на тот случай, если кто-то попробует все остальное.

В моем случае предыдущая установка Java JRE (в ProgramData/Oracle/Java) имела переменную пути в верхней части моего списка переменных пути. Содержимое этого пути «Oracle» содержало Java.exe, но не javac.exe…. Я добавил свой полный путь JDK в начало списка переменных пути, перед «Oracle», и затем подобрал javac.exe так же как и Java.

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

это решение сработало для меня

0
Cristian Agudelo

У меня была такая же проблема, опубликованная в этом заголовке. Java будет работать, но javac не будет в командной строке Windows (cmd.exe).

Для меня это было просто то, что я добавил пробел при добавлении C:\Program Files\Java\jdk1.8.0\bin в конец моей переменной окружения %PATH%.
Удалить пробел между ; и следующим путем к файлу.

0
Taiton

Я столкнулся с той же самой проблемой, что Java будет работать, но javac не будет на командной строке в Windows 8.

Проблема произошла, потому что я забыл удалить '>' в конце имени пути, то есть это было так:

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

где это должно было быть так:

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