Вопрос

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

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

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

Это было полезно?

Решение

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

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 compiler javac.exe и Java runtime java.exe) находятся в каталоге "\bin" (где обозначает установленный каталог JDK, например, C:\Program Files\Java\jdk1.8.0_xx).Вам необходимо включить каталог "\bin" в ПУТЬ.

Как отредактировать переменную среды 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...]

Screenshot

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

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

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

Для пути javac

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

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

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

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

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

ссылочный поток для JDK ПРОТИВ JRE В чем разница между JDK и JRE?

Я знаю, что это может быть не ваша конкретная ошибка, но у меня когда-то был начальный пробел в моем path, и 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%

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Укажите это как "C:\Program Files\Java\jdk1.6.0_16\bin".Удалите обратную косую черту, это сработает

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top