Я пытаюсь использовать javac
с командной строкой Windows, но она не работает.
После добавления каталога "C:\Program Files\Java\jdk1.6.0_16\bin\"
в конец переменной среды PATH
команда java
работает нормально, но использование javac
выдает следующую ошибку:
"javac" не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл.
Ответ 1
Если вы добавили его в панель управления во время открытой командной строки, это не повлияет на текущую командную строку. Вам нужно будет выйти и снова открыть или просто сделать:
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.
Ответ 2
ОС 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:
-
Панель управления ⇒ Система ⇒ Расширенные настройки системы
-
Перейдите на вкладку "Дополнительно" ⇒ Переменные среды
-
В "Системные переменные" прокрутите вниз, чтобы выбрать "PATH" ⇒ Edit
((теперь перед тем, как продолжить, прочитайте следующие 3 раза, НЕТ UNDO))
В поле "Значение переменной" INSERT "c:\Program Files\Java\jdk1.8.0_xx\bin" (замените xx номером обновления и ПРОВЕРЬТЕ, что это ваш двоичный каталог JDK!!!) IN FRONT of все существующие каталоги, за которыми следует точка с запятой (;), которая отделяет двоичную директорию JDK от остальных существующих каталогов.
НЕ УДАЛЯЙТЕ любые существующие записи; в противном случае некоторые существующие приложения могут не работать.
Variable name : PATH
Variable value : c:\Program Files\Java\jdk1.8.0_xx\bin;[existing entries...]
![Screenshot]()
Ответ 3
После долгого Google я узнал, что javac.exe будет внутри JDK(C:\Program Files\Java\jdk (номер версии)\bin), а не внутри JRE ( C:\Program Files (x86)\Java\jre7\bin) "JRE не поставляется с компилятором. Это (JRE) просто среда выполнения java. Вам нужен комплект разработки Java." чтобы использовать компилятор javac
Javac не будет работать, если вы указываете bin внутри 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 VS JRE В чем разница между JDK и JRE?
Ответ 4
Я знаю, что это может быть не ваша конкретная ошибка, но у меня когда-то было ведущее место на моем пути, и java работал бы, но javac не стал бы.
Для чего это стоит, я предлагаю совет мудреца: "Осмотрите свой путь близко".
Ответ 5
Попробуйте решения здесь: 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%
Затем вы можете добавить эти строки в скрипт запуска/входа.
Ответ 6
Я просто должен был сделать это, чтобы заставить это работать на Windows 7 64.
Откройте командную строку (cmd.exe) и введите:
set CLASSPATH=C:\Program Files\Java\jdk1.7.0_01\bin
Удостоверьтесь, что вы снова открываете все текущее командное приглашение Windows, чтобы обновить переменную среды.
Ответ 7
Хорошо, что это не всегда так, но многие из нас сделали эту ошибку в прошлом, и немногие из них до сих пор не знают об этом, то есть каждый раз, когда вы добавляете путь (любой путь) любой среды переменная, вы, вероятно, попадете в пробел сразу после "точки с запятой" (как обычно, после "периода" при наборе текста в редакторе).
Это создаст ведущее пространство в пути, например "C:\Program Files\Java\jdk1.6.0\bin", и поэтому "javac.exe" не будет найден системой.
Ответ 8
Измените папку "jdk1.7.0_45" "jdk1_7_0_60" и обновите путь в среде Windows. В противном случае путь игнорирует точку на передней панели, которая обозначает скрытый файл, и поэтому папка не отображается в строках PATH.
Ответ 9
"; C:\Program Files\Java\jdk1.6.0\bin" иногда вы можете забыть поставить точку с запятой на последний существующий путь.
Ответ 10
У меня была такая же проблема, как и в этом названии. Java будет работать, но javac
не будет в командной строке Windows (cmd.exe
).
Для меня просто было место, когда я добавлял C:\Program Files\Java\jdk1.8.0\bin
в конец моей переменной среды %PATH%
.
Удалите пробел между ;
и следующим путем.
Ответ 11
Я столкнулся с той же проблемой, что и java, но javac не будет в командной строке в Windows 8.
Проблема возникла из-за того, что я забыл удалить '>'
в конце имени пути, т.е. это было так:
C:\Program Files\Java\jdk*\bin>
где он должен был быть таким:
C:\Program Files\Java\jdk*\bin
Ответ 12
Путь будет установлен только для учетной записи администратора. Поэтому очень важно запустить командную строку в качестве администратора, если вы еще этого не сделали.
Ответ 13
Убедитесь, что вы не разрешаете пробелы (пробелы) между путями в переменной Path. Моя проблема заключалась в том, что у меня было пустое пространство, и я полагаю, что Windows рассматривала его как NULL и не читала мой путь для Java.
Ответ 14
Я ценю, что это старый вопрос, но мое решение не было ответом здесь, поэтому отправляйте его, если кто-то еще попробует всех остальных.
В моем случае предыдущая установка Java JRE (в ProgramData/Oracle/Java) имела переменную пути в верхней части моего списка переменных пути. Содержимое этого пути "Oracle" имело java.exe, но не файл javac.exe.
Я добавил свой полный путь JDK к вершине списка переменных пути, опередив "Oracle", и затем взял javac.exe, а также java.
Ответ 15
for /d %i in ("\Program Files\Java\jdk*") do set JAVA_HOME=%i
set JAVA_HOME
это решение работало со мной
Ответ 16
Когда я пытался сделать .java для .class, команда Javac не работала. Я получил его, перейдя в C:\Program Files (x86)\Java\jdk1.7.0_04\bin, и когда я был в этом каталоге, я набрал Javac.exe C\Test\test.java, и он сделал класс с этим тактика. Попробуйте это.
Ответ 17
Дайте ему "C:\Program Files\Java\jdk1.6.0_16\bin". Удалите обратную косую черту, она будет работать