«javac» не является внутренней или внешней командой
Сообщение значит, что Windows не нашла программу javac ни в одной папке из списка Path. Причины почти всегда такие: JDK не установлен (стоит только среда для запуска), папка JDK не добавлена в Path или окно терминала открыто раньше, чем закончилась установка.
В командной строке ошибка выглядит так:
"javac" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.В PowerShell — «Имя "javac" не распознано как имя командлета, функции, файла сценария или выполняемой программы». В английской Windows — 'javac' is not recognized as an internal or external command.
Что сделать по порядку
Пробуйте по очереди, пока javac -version не покажет номер версии. В Linux и macOS — сразу раздел Linux и macOS.
Откройте новое окно терминала
Окна, открытые до установки, не видят изменений
Path. Закройте терминал и откройте новый. Если работаете в редакторе со встроенным терминалом — перезапустите редактор целиком.javac -versionв новом окне выводит номер версии — дело было в старом окне.Проверьте, что стоит именно JDK
Если
java -versionработает, аjavac— нет, скорее всего установлена только среда запуска — например, Java 8 с java.com. В ней компилятора нет: поставьте JDK по справке Как установить JDK и прописать JAVA_HOME. JDK уже стоит, если в его папке (например,C:\Program Files\Eclipse Adoptium\…\bin) есть файлjavac.exe, — тогда переходите к следующему шагу.После установки JDK в новом окне
javac -versionвыводит номер версии.Добавьте папку bin JDK в Path
- Нажмите
Win+R, введитеsysdm.cpl, на вкладке «Дополнительно» нажмите «Переменные среды». - Выберите
Path→ «Изменить» → «Создать» и впишите путь к папкеbin, напримерC:\Program Files\Eclipse Adoptium\jdk-21.0.5.11-hotspot\bin. Точный путь посмотрите в «Проводнике»: в этой папке должен лежать файлjavac.exe. - Нажмите «ОК» во всех окнах, откройте новое окно командной строки и проверьте:
Командная строка javac -version where javacwhere javacпоказывает, какой именноjavac.exeнашла система (в PowerShell —where.exe javac). Если его нет, а путь вPathесть, — проверьте путь на опечатки: лишний пробел,binне в той папке, кавычки внутри строки.javac -versionвыводит номер версии, аwhere javac— путь кjavac.exeв папке JDK.- Нажмите
Java запускается, но не та
Бывает, что javac работает, а java -version показывает другую, старую версию. Обычно в Path выше стоит папка старой Java, например C:\Program Files\Common Files\Oracle\Java\javapath или C:\ProgramData\Oracle\Java\javapath. where java покажет все найденные варианты по порядку — запускается первый. Поднимите папку нужного JDK выше кнопкой «Вверх» в окне изменения Path или удалите старую Java через «Установку и удаление программ».
Linux и macOS
В Linux та же ошибка выглядит как javac: command not found или Command 'javac' not found. Поставьте пакет JDK (не JRE):
sudo apt update
sudo apt install openjdk-21-jdkВ macOS при запуске javac без установленного JDK система сообщает, что Java не найдена. Поставьте JDK с adoptium.net (файл .pkg) и откройте новое окно терминала.
В IntelliJ IDEA
IntelliJ IDEA не ищет javac через Path: JDK указывается в настройках проекта (File → Project Structure → Project → SDK), там же его можно скачать. Поэтому программа может запускаться в IntelliJ IDEA и при этом не находиться в командной строке — это нормально, если командная строка не нужна.