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

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

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

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

17 ответов

Решение

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

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

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

echo %path%

из командной строки и дайте нам знать, что это такое.

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

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

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

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

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

ОС 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 раза, прежде чем продолжить, НЕ ОТМЕНА)

В поле "Значение переменной" ВСТАВЬТЕ "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...]

Скриншот

После долгого 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

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

путь = 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 против JRE В чем разница между JDK и JRE?

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

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

Попробуйте решения здесь: 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%

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

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

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

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

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

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

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

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

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

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

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

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

C:\Program Files\Java\jdk*\bin
for /d %i in ("\Program Files\Java\jdk*") do set JAVA_HOME=%i
set JAVA_HOME

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

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

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

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

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

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

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

";C:\Program Files\Java\jdk1.6.0\bin" иногда вы можете забыть поставить точку с запятой в последнем существующем пути.

Когда я попытался сделать.java для.class, команда Javac не работала. Я получил его, перейдя в C:\Program Files (x86)\Java\jdk1.7.0_04\bin, и когда я был в этом каталоге, я набрал Javac.exe C\Test\test.java, и он создал класс с этим тактика. Попробуйте это.

Задайте его как "C:\Program Files\Java\jdk1.6.0_16\bin". Снимите обратную косую черту, это будет работать

Другие вопросы по тегам