Java/JDK не найдена: настройка JAVA_HOME
Пошаговое руководство по настройке JAVA_HOME в Windows и Linux: установка JDK, настройка переменных окружения, исправление ошибок несовместимости.
Симптомы
- Ошибка JAVA_HOME is not set
- Ошибка JAVA_HOME is set to an invalid directory
- Команда java не найдена
- javac не распознаётся как команда
- Maven/Gradle не могут найти Java
- JAVA_HOME points to a JRE not a JDK
Возможные причины
- Переменная JAVA_HOME не задана
- JAVA_HOME указывает на неправильную директорию
- JAVA_HOME указывает на bin поддиректорию
- Установлен JRE вместо JDK
- Старая версия Java в PATH приоритетный
- Опечатка в имени переменной
Пошаговое решение
Проверьте текущую установку Java
Откройте командную строку и выполните: java -version. Если команда не найдена — Java не установлена или не добавлена в PATH. Если Java найдена, проверьте: where java (Windows) или which java (Linux). Это покажет, какая версия используется. Убедитесь, что установлена JDK, а не только JRE: javac -version. Если javac не найден — установите JDK с adoptium.net или oracle.com.
java -version Установите JDK (если не установлен)
Скачайте JDK с adoptium.net (рекомендуется) или oracle.com. Выберите версию для вашей ОС. Запустите установщик. На Windows: по умолчанию установится в C:\Program Files\Java\jdk-XX. На Ubuntu/Debian: sudo apt install openjdk-17-jdk. На CentOS/RHEL: sudo yum install java-17-openjdk-devel. После установки проверьте: java -version и javac -version.
sudo apt install openjdk-17-jdk Настройте JAVA_HOME в Windows
Нажмите Win+R, введите sysdm.cpl, нажмите Enter. Перейдите на вкладку Дополнительно. Нажмите Переменные среды. В разделе Системные переменные нажмите Создать. Имя: JAVA_HOME, Значение: путь к корню JDK (например, C:\Program Files\Java\jdk-17). НЕ указывайте \bin. Затем найдите Path, нажмите Изменить. Добавьте: %JAVA_HOME%\bin. Нажмите ОК везде и откройте новое окно командной строки.
Настройте JAVA_HOME в Linux
Откройте ~/.bashrc (или ~/.zshrc). Добавьте в конец: export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64. Добавьте: export PATH="$JAVA_HOME/bin:$PATH". Сохраните файл и выполните: source ~/.bashrc. Проверьте: echo $JAVA_HOME. Для системной настройки создайте файл /etc/profile.d/java-home.sh с теми же командами. Также используйте: sudo update-alternatives --config java для выбора версии.
echo $JAVA_HOME Исправьте ошибку JAVA_HOME points to bin
Частая ошибка — указание JAVA_HOME на поддиректорию bin. JAVA_HOME должен указывать на КОРНЕВУЮ директорию JDK. Например: ПРАВИЛЬНО: C:\Program Files\Java\jdk-17, НЕПРАВИЛЬНО: C:\Program Files\Java\jdk-17\bin. Исправьте значение переменной JAVA_HOME, чтобы оно указывало на корень JDK. Также убедитесь, что в Path указана %JAVA_HOME%\bin, а не просто путь к bin.
Проверьте конфликт версий
Если на компьютере установлено несколько версий Java — PATH может указывать на старую. Проверьте: where java (Windows) или which -a java (Linux). Если есть несколько путей — убедитесь, что %JAVA_HOME%\bin стоит в Path раньше других Java путей. Удалите старые пути из Path. Используйте update-alternatives (Linux) или переименование папки (Windows) для управления версиями.
where java JAVA_HOME — переменная окружения, необходимая для работы Maven, Gradle, Tomcat и других Java инструментов. Она должна указывать на корневую директорию JDK, а не на bin поддиректорию. Без неё многие инструменты не могут найти компилятор и рантайм.
Частые ошибки при настройке JAVA_HOME
JAVA_HOME не задана (самая частая), указывает на bin директорию, указывает на JRE вместо JDK, указывает на несуществующую папку, содержит опечатку в имени. Все эти ошибки приводят к тому, что Java инструменты не могут найти JDK.
Как проверить настройку
Выполните: echo %JAVA_HOME% (Windows) или echo $JAVA_HOME (Linux). Затем: %JAVA_HOME%\bin\java -version (Windows) или $JAVA_HOME/bin/java -version (Linux). Если java запускается — настройка правильная. Также проверьте: %JAVA_HOME%\bin\javac -version для наличия компилятора.
Проверка состояния пакетов
Выполните sudo apt —fix-broken install (Debian/Ubuntu) или sudo dnf distro-sync (Fedora) для исправления сломанных зависимостей. Проверьте повреждённые пакеты: sudo dpkg —audit (Debian) или sudo rpm -Va (RHEL). Это покажет, какие файлы изменены или отсутствуют.
Очистка кеша
Очистите кеш пакетов: sudo apt clean (Debian) или sudo dnf clean all (Fedora). Удалите неиспользуемые зависимости: sudo apt autoremove. Это освободит место и устранит конфликты версий. Если ошибка в репозитории, проверьте /etc/apt/sources.list на наличие неверных URL.
Переустановка пакета
Для переустановки повреждённого пакета: sudo apt install —reinstall имя-пакета. Если пакет зависит от других повреждённых, переустановите их все. Проверьте версию: apt show имя-пакета. Убедитесь, что версия совместима с вашейОС.
Исправление ключей GPG
Если ошибка связана с подписью пакета (NO_PUBKEY), обновите ключи: sudo apt-key adv —keyserver keyserver.ubuntu.com —recv-keys КЛЮЧ. Или: sudo gpg —keyserver keyserver.ubuntu.com —recv КЛЮЧ. Для Fedora: sudo rpm —import /etc/pki/rpm-gpg/RPM-GPG-KEY-*.
Проверка репозиториев
Убедитесь, что репозитории доступны и не дублируются: apt-cache policy (Debian) или dnf repolist (Fedora). Отключите ненужные репозитории: sudo add-apt-repository —remove ppa:имя. Для Fedora: sudo dnf config-manager —set-disabled репозиторий. Конфликтующие репозитории — частая причина ошибок.
Источники
- theserverside.com — проверено 02.06.2026
- cleverence.com — проверено 02.06.2026
- linuxcapable.com — проверено 02.06.2026
- docs.oracle.com — проверено 02.06.2026