
Переменная JAVA_HOME определяет путь к установленной среде разработки Java и используется многими инструментами: Gradle, Maven, Tomcat, Android Studio. Если значение отсутствует или указано неверно, часть программ не сможет запускаться или собираться.
Для Windows чаще всего требуется указать путь вида C:\Program Files\Java\jdk-17. В Linux и macOS переменная обычно указывает на каталог /usr/lib/jvm/java-17-openjdk или аналогичный. Конкретный путь зависит от версии JDK и способа установки.
Правильная настройка переменной позволяет системе однозначно находить нужную версию JDK, а также упрощает переключение между несколькими версиями Java. Это особенно важно при разработке и тестировании проектов, где требования к версии строго зафиксированы.
Определение установленной версии Java
Чтобы узнать, какая версия Java установлена, откройте терминал или командную строку и выполните команду:
java -version
Результат содержит информацию о версии среды выполнения, например: openjdk version "17.0.2". Эта строка указывает, что установлена Java 17.
Для проверки установленного компилятора используйте:
javac -version
На Windows можно также проверить версию через команду where java, на Linux и macOS – which java. Эти команды показывают путь к исполняемому файлу, что помогает определить, из какой директории запускается Java.
Поиск пути к каталогу установки JDK
Быстрая проверка исполняемых файлов. В Linux/macOS: which java или command -v java. В Windows CMD: where java. В PowerShell: (Get-Command java).Path. Полученный путь указывает на .../bin/java – поднимитесь на два уровня вверх, чтобы получить корень JDK (например: readlink -f $(which java) && dirname $(dirname $(readlink -f $(which java)))).
macOS: используйте утилиту от Apple – /usr/libexec/java_home. Команда /usr/libexec/java_home вернёт точный путь корня JDK; для конкретной версии добавьте -v 17 или нужную мажорную версию.
Linux (дистрибутивы Debian/Ubuntu, RHEL/CentOS): проверьте стандартные директории /usr/lib/jvm/ и /opt/. Если JDK установлен через пакетный менеджер, каталог обычно выглядит как /usr/lib/jvm/java-17-openjdk-amd64 или /usr/lib/jvm/jdk-17.
Windows: если where java вернул путь вроде C:\Program Files\Java\jdk-17\bin\java.exe, корень – C:\Program Files\Java\jdk-17. В PowerShell для автоматизации: Split-Path -Parent (Split-Path -Parent (Get-Command java).Path).
Проверка через компилятор: выполните javac -version – если команда доступна, найдите её расположение (which javac / where javac) и поднимитесь к корню JDK аналогично Java.
Прямой запрос у системы: в Windows можно прочитать реестр reg query "HKLM\SOFTWARE\JavaSoft\Java Development Kit" /v CurrentVersion и затем reg query "HKLM\SOFTWARE\JavaSoft\Java Development Kit\{версия}" /v JavaHome. Это возвращает точный путь JavaHome, если JDK записан в реестр.
Если JDK установлен вручную и его путь неизвестен, найдите папку, содержащую подкаталог bin с файлами java и javac, а также подкаталог lib и файл release – это гарантирует, что вы указали корень JDK, пригодный для установки JAVA_HOME.
Создание системной переменной JAVA_HOME в Windows

Откройте меню «Пуск», введите «Переменные среды» и выберите пункт «Изменение системных переменных среды».
В открывшемся окне «Свойства системы» нажмите кнопку «Переменные среды».
В блоке «Системные переменные» нажмите «Создать» и введите имя переменной: JAVA_HOME.
В поле «Значение переменной» укажите путь к установленной JDK, например: C:\Program Files\Java\jdk-17.
Сохраните изменения кнопкой «ОК» и закройте все окна.
Чтобы проверить настройку, откройте командную строку и выполните: echo %JAVA_HOME%. Если путь отображается корректно, переменная создана.
Добавление JAVA_HOME в PATH на Windows
1. Нажмите Win + R, введите sysdm.cpl и подтвердите запуск.
2. В окне «Свойства системы» откройте вкладку «Дополнительно» и выберите «Переменные среды».
3. В разделе «Системные переменные» найдите строку Path и нажмите «Изменить».
4. В редакторе переменной добавьте новую запись: %JAVA_HOME%\bin.
5. Подтвердите изменения во всех открытых окнах кнопкой «ОК».
6. Проверьте результат в командной строке командой: java -version. При корректной настройке появится информация об установленной версии JDK.
Настройка JAVA_HOME в Linux через ~/.bashrc

Откройте файл ~/.bashrc в текстовом редакторе:
nano ~/.bashrc
В конец файла добавьте строку с указанием пути к установленной JDK. Пример для OpenJDK 17:
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
Чтобы переменная применялась при каждом запуске оболочки, сохраните изменения и выполните:
source ~/.bashrc
Проверьте результат командой:
echo $JAVA_HOME
Если путь отображается корректно, переменная настроена правильно.
Применение изменений переменных окружения

После задания переменной JAVA_HOME необходимо убедиться, что система корректно использует новое значение. На Windows это достигается через командную строку, на Linux и macOS – через терминал.
На Windows для проверки достаточно выполнить команду:
echo %JAVA_HOME%
Если путь к установленной JDK отображается правильно, изменения вступили в силу. Для применения в новых сеансах нужно перезапустить терминалы и программы, использующие Java.
На Linux и macOS проверка осуществляется командой:
echo $JAVA_HOME
Чтобы изменения переменной применялись автоматически при каждом входе в систему, добавьте строку export JAVA_HOME=/путь/к/jdk в файл ~/.bashrc или ~/.zshrc в зависимости от используемой оболочки.
Для интеграции с системными инструментами и сборщиками проектов (Maven, Gradle, Ant) переменная JAVA_HOME должна быть доступна глобально. В таблице приведены команды для обновления переменной без перезагрузки системы:
| Операционная система | Команда для применения изменений |
|---|---|
| Windows | setx JAVA_HOME "C:\Program Files\Java\jdk-<версия>" |
| Linux / macOS | source ~/.bashrc или source ~/.zshrc |
После применения изменений рекомендуется проверить доступность java-команд:
Проверка корректности настройки JAVA_HOME
После установки и задания переменной JAVA_HOME важно убедиться, что система правильно распознаёт путь к JDK. Для этого выполните следующие шаги:
-
Откройте терминал или командную строку:
- Windows:
Win + R → cmd → Enter - Linux/macOS: откройте Terminal
- Windows:
-
Выведите значение переменной JAVA_HOME:
- Windows:
echo %JAVA_HOME% - Linux/macOS:
echo $JAVA_HOME
Результат должен указывать на корневую папку установленного JDK, например:
C:\Program Files\Java\jdk-17или/usr/lib/jvm/java-17-openjdk. - Windows:
-
Проверьте доступность исполняемого файла java:
- Windows:
%JAVA_HOME%\bin\java -version - Linux/macOS:
$JAVA_HOME/bin/java -version
- Windows:
-
Дополнительно проверьте компилятор:
- Windows:
%JAVA_HOME%\bin\javac -version - Linux/macOS:
$JAVA_HOME/bin/javac -version
- Windows:
-
Если команды не выполняются, проверьте:
- Правильность пути в JAVA_HOME (обращайте внимание на слэши и пробелы)
- Наличие JDK в указанной директории
- Добавление
%JAVA_HOME%\binили$JAVA_HOME/binв системную переменную PATH
Регулярная проверка после обновления JDK помогает избежать конфликтов версий и ошибок при сборке проектов.
Вопрос-ответ:
Что такое переменная JAVA_HOME и зачем она нужна?
Переменная JAVA_HOME указывает системе путь к установленной версии Java. Она нужна многим программам и инструментам сборки, таким как Maven, Gradle или Tomcat, чтобы корректно находить исполняемые файлы Java и библиотеки. Без неё некоторые приложения могут не запускаться или выдавать ошибки.
Как проверить, установлена ли переменная JAVA_HOME на моём компьютере?
В Windows откройте командную строку и введите echo %JAVA_HOME%. Если переменная настроена, будет отображён путь к папке с Java. На Linux или macOS используйте команду echo $JAVA_HOME. Если вывод пустой или выдаёт сообщение об ошибке, переменная не установлена.
Какие шаги нужно выполнить, чтобы установить JAVA_HOME в Windows?
Сначала найдите папку, где установлена Java, обычно она находится в Program Files. Затем откройте «Свойства системы» → «Дополнительные параметры» → «Переменные среды». Создайте новую системную переменную с именем JAVA_HOME и укажите путь к папке Java. После сохранения изменений перезапустите терминал или командную строку, чтобы переменная стала доступна.
Как установить переменную JAVA_HOME на Linux или macOS?
Для временной установки можно ввести export JAVA_HOME=/путь/к/java в терминале. Чтобы сделать настройку постоянной, нужно добавить эту строку в файл /.bashrc или /.zshrc, в зависимости от используемого шелла. После редактирования файла выполните source ~/.bashrc или перезапустите терминал, чтобы изменения вступили в силу.
Можно ли указать несколько версий Java через переменную JAVA_HOME?
Переменная JAVA_HOME может содержать путь только к одной версии Java. Для работы с несколькими версиями обычно используют инструменты управления Java, например SDKMAN! на Linux/macOS или альтернативные пути на Windows, которые позволяют переключаться между установленными версиями, изменяя значение JAVA_HOME по необходимости.
Как проверить, правильно ли задана переменная JAVA_HOME в Windows?
После того как переменная JAVA_HOME задана, откройте командную строку и введите команду echo %JAVA_HOME%. Если переменная установлена корректно, будет показан путь к папке с установленной Java. Кроме того, можно выполнить java -version и javac -version, чтобы убедиться, что система использует нужную версию Java.
Почему после установки JAVA_HOME некоторые программы не видят Java?
Причины могут быть разные. Во-первых, переменная могла быть установлена только для текущего пользователя, а программа запускается от имени другой учетной записи или с правами администратора. Во-вторых, путь к папке Java мог быть указан с ошибкой: важно, чтобы он указывал на корневую папку JDK, а не на подкаталоги. В-третьих, после изменения переменной необходимо перезапустить терминал или перезагрузить систему, чтобы новые значения вступили в силу.
