Разработка 8 мин чтения

Java/JDK не найдена: настройка JAVA_HOME

Пошаговое руководство по настройке JAVA_HOME в Windows и Linux: установка JDK, настройка переменных окружения, исправление ошибок несовместимости.

JavaJDKJAVA_HOMEразработканастройка

Симптомы

  • Ошибка 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 приоритетный
  • Опечатка в имени переменной

Пошаговое решение

1

Проверьте текущую установку Java

Откройте командную строку и выполните: java -version. Если команда не найдена — Java не установлена или не добавлена в PATH. Если Java найдена, проверьте: where java (Windows) или which java (Linux). Это покажет, какая версия используется. Убедитесь, что установлена JDK, а не только JRE: javac -version. Если javac не найден — установите JDK с adoptium.net или oracle.com.

Команда
java -version
2

Установите 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
3

Настройте JAVA_HOME в Windows

Нажмите Win+R, введите sysdm.cpl, нажмите Enter. Перейдите на вкладку Дополнительно. Нажмите Переменные среды. В разделе Системные переменные нажмите Создать. Имя: JAVA_HOME, Значение: путь к корню JDK (например, C:\Program Files\Java\jdk-17). НЕ указывайте \bin. Затем найдите Path, нажмите Изменить. Добавьте: %JAVA_HOME%\bin. Нажмите ОК везде и откройте новое окно командной строки.

4

Настройте 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
5

Исправьте ошибку 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.

6

Проверьте конфликт версий

Если на компьютере установлено несколько версий 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 репозиторий. Конфликтующие репозитории — частая причина ошибок.

Источники

  1. theserverside.com — проверено 02.06.2026
  2. cleverence.com — проверено 02.06.2026
  3. linuxcapable.com — проверено 02.06.2026
  4. docs.oracle.com — проверено 02.06.2026