Как установить JDK и прописать JAVA_HOME
JDK — набор для разработки на Java: компилятор javac, виртуальная машина java и другие инструменты. Берите версию LTS — 21 или новее. Официальные бесплатные сборки: Eclipse Temurin (adoptium.net) и Oracle JDK (oracle.com/java). В Linux проще поставить OpenJDK из репозитория системы.
Установка и JAVA_HOME
JAVA_HOME — переменная среды (настройка, которую система передаёт всем программам) с путём к папке JDK. По ней JDK находят Maven, Gradle, серверы приложений и другие программы. Как ставить JDK и задавать переменную, зависит от системы — выберите свою.
Windowsустановщик .msi
Установка
- Скачайте с adoptium.net установщик
.msiдля Windows x64 и запустите его. - На шаге выбора компонентов включите пункт, который задаёт
JAVA_HOME(Set JAVA_HOME): сразу он выключен. Пункт добавления вPATH(список папок, где система ищет команды) уже включён — оставьте его. - Закройте все окна командной строки и откройте новое: старые окна не видят новых переменных.
Если JDK уже стоит, а JAVA_HOME не задан
- Нажмите
Win+R, введитеsysdm.cpl, на вкладке «Дополнительно» нажмите «Переменные среды». - В разделе системных переменных (или переменных пользователя) нажмите «Создать»: имя —
JAVA_HOME, значение — папка JDK, напримерC:\Program Files\Eclipse Adoptium\jdk-21.0.5.11-hotspot(у вас номер будет свой; у Oracle JDK папка обычноC:\Program Files\Java\jdk-21). - Выберите переменную
Path→ «Изменить» → «Создать» и впишите%JAVA_HOME%\bin. - Нажмите «ОК» во всех окнах и откройте новую командную строку.
JAVA_HOME указывает на саму папку JDK, а в Path добавляется её подпапка bin — там лежат java.exe и javac.exe. Проверка в командной строке:
echo %JAVA_HOME%
where javaПервая команда выводит путь к папке JDK. where java показывает все найденные java.exe по порядку — запускается первая (в PowerShell пишите where.exe java: там слово where значит другое). Если первой стоит папка старой Java, поднимите строку %JAVA_HOME%\bin в списке Path кнопкой «Вверх».
Не задавайте Path командой setx в командной строке: она может обрезать длинное значение, и из Path пропадут пути к другим программам. Меняйте Path через окно «Переменные среды».
LinuxUbuntu, Debian, Linux Mint
Откройте терминал и выполните две команды: первая обновляет список пакетов, вторая ставит JDK.
sudo apt update
sudo apt install openjdk-21-jdkЕсли пакета нет (старые выпуски систем), ставьте openjdk-17-jdk. Нужен пакет с jdk в имени: в jre компилятора нет. Команды java и javac сразу работают, JAVA_HOME нужен только программам, которые его требуют (Maven, Gradle, серверы приложений). Узнать папку JDK:
readlink -f "$(which javac)"Команда выводит путь вроде /usr/lib/jvm/java-21-openjdk-amd64/bin/javac. JAVA_HOME — это путь без /bin/javac на конце. Добавьте в конец файла ~/.bashrc (файл настроек оболочки, он лежит в вашей домашней папке) две строки со своим путём:
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
export PATH="$JAVA_HOME/bin:$PATH"Изменения действуют в новом окне терминала или после source ~/.bashrc. Если установлено несколько версий, переключить версию по умолчанию можно командами sudo update-alternatives --config java и sudo update-alternatives --config javac.
macOSустановщик .pkg
Скачайте с adoptium.net установщик .pkg и запустите его. JDK ляжет в /Library/Java/JavaVirtualMachines/, а команды java и javac заработают сразу. Список установленных JDK показывает утилита (наберите в терминале):
/usr/libexec/java_home -VЧтобы задать JAVA_HOME, добавьте в файл ~/.zshrc (файл настроек оболочки zsh, которая в macOS стоит по умолчанию) строку (для версии 21):
export JAVA_HOME=$(/usr/libexec/java_home -v 21)Проверьте установку
В новом окне терминала наберите:
java -version
javac -versionОбе команды должны показать одну и ту же версию. Если javac не находится — смотрите справку javac не является внутренней или внешней командой.
Подводные камни
- Поставлена Java 8 с java.com. Это среда только для запуска программ, без
javac. Для разработки нужен JDK. - Разные версии у
javaиjavac. Программа, собранная новымjavac, не запустится старойjava: ошибкаUnsupportedClassVersionError … class file version 65.0 … only recognizes class file versions up to 52.0. Числа значат версии: 52 — Java 8, 61 — Java 17, 65 — Java 21. Уберите старую Java изPathили поставьте нужную строку выше. JAVA_HOMEуказывает наbin. Правильно — на саму папку JDK, без\binна конце.- IntelliJ IDEA не требует
JAVA_HOME: JDK выбирается в настройках проекта, там же его можно скачать.