Обновить Java — это установить более новую сборку JDK или JRE и сделать так, чтобы система запускала именно ее (а не старую, оставшуюся рядом). Java не обновляется одной кнопкой «внутри программы»: вы ставите новый пакет и, если версий несколько, переключаете активную. Способ зависит от того, как Java была установлена: установщик с сайта, пакетный менеджер или менеджер версий.
Содержание
Ниже — как проверить текущую версию, поставить новую на Windows, macOS и Linux, переключаться между несколькими JDK через JAVA_HOME и что делать, если после установки java -version все равно показывает старую.
JDK или JRE: что именно вы обновляете
Сначала разведем два близких понятия, их постоянно путают.
- JRE (Java Runtime Environment) — среда для запуска готовых Java-приложений: виртуальная машина JVM и стандартные библиотеки. Компилятора в ней нет.
- JDK (Java Development Kit) — полный комплект разработчика: то же, что в JRE, плюс компилятор
javac, отладчик и утилиты. JDK включает в себя среду выполнения.
Практический вывод: если вы пишете код или собираете проекты — ставьте JDK. Если только запускаете чужое приложение — формально хватит среды выполнения, но по факту почти все современные дистрибутивы поставляют именно JDK. Начиная с Java 11 Oracle и большинство сборок OpenJDK не выпускают отдельный устанавливаемый JRE — его роль закрывает JDK, а урезанную среду выполнения при необходимости собирают утилитой jlink (это стоит перепроверить для вашего дистрибутива).
Какую версию ставить в 2026 году
Java выходит каждые полгода, но не каждый релиз стоит ставить в продакшен. Ориентир — версии с долгосрочной поддержкой (LTS): их дольше обновляют по безопасности.
Актуальные LTS-версии на 2026 год — Java 17, 21 и 25 (Java 25 вышла в сентябре 2025). Между LTS выходят промежуточные релизы (например, Java 26 в марте 2026) — они для экспериментов, а не для долгой эксплуатации. Конкретные номера и даты меняются, поэтому актуальный список сверяйте на сайте дистрибутива (см. «Точки для фактчека»).
Отдельный момент — выбор дистрибутива. Кроме Oracle JDK есть бесплатные сборки OpenJDK: Eclipse Temurin (Adoptium), Amazon Corretto, Azul Zulu, Microsoft Build of OpenJDK, BellSoft Liberica. По коду они совместимы; различаются лицензией и сроками поддержки. Для учебы и большинства проектов подойдет Temurin или Corretto.
Шаг 1. Проверьте текущую версию
Откройте терминал (в Windows — PowerShell или «Командную строку») и выполните:
java -version
Пример вывода:
openjdk version "21.0.4" 2024-07-16 LTS
OpenJDK Runtime Environment Temurin-21.0.4+7 (build 21.0.4+7-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.4+7 (build 21.0.4+7-LTS, mixed mode, sharing)
Первая строка — главное: 21.0.4 значит Java 21. Точный текст зависит от дистрибутива и версии, у Oracle JDK строка начинается со слова java, а не openjdk.
Чтобы отдельно проверить компилятор (то есть что стоит именно JDK, а не только среда выполнения), выполните:
javac -version
javac 21.0.4
Если java -version работает, а javac -version выдает «команда не найдена» — у вас есть среда выполнения, но нет полного JDK. Для разработки ставьте JDK.
Небольшая деталь: java -version печатает результат в поток ошибок (stderr), а не в стандартный вывод. При обычном запуске в терминале это не важно, но если попытаетесь перенаправить вывод в файл через >, строка версии туда не попадет без 2>&1.
Шаг 2. Установите новую версию
Windows
Два рабочих пути.
- Установщик с сайта. Скачайте
.msi(или.exe) нужной версии с сайта дистрибутива (Adoptium, Oracle, Corretto), запустите и пройдите мастер. Установщик Temurin умеет сам прописатьJAVA_HOMEи путь — отметьте эти пункты в списке компонентов. - Менеджер пакетов winget (встроен в Windows 10/11):
winget install EclipseAdoptium.Temurin.21.JDK
Идентификатор пакета зависит от версии и дистрибутива, точное имя посмотрите командой winget search temurin.
macOS
Проще всего через Homebrew:
brew install temurin@21
Homebrew установит JDK и подскажет, как подключить его к системе. Альтернатива — .pkg-установщик с сайта дистрибутива. Если планируете держать несколько версий рядом, удобнее менеджер SDKMAN (см. следующий раздел).
Linux
Через штатный пакетный менеджер дистрибутива.
Debian и Ubuntu:
sudo apt update
sudo apt install openjdk-21-jdk
Fedora, RHEL, CentOS Stream:
sudo dnf install java-21-openjdk-devel
Пакет с суффиксом -devel (в apt — -jdk) — это полный JDK с компилятором; без суффикса обычно ставится только среда выполнения. Номер версии в имени пакета подставьте актуальный для вашего репозитория.
Шаг 3. Переключение между несколькими версиями
Часто старую версию не удаляют: один проект требует Java 17, другой — Java 21. Тогда нужно уметь переключать активную. Ключевую роль играет переменная окружения JAVA_HOME — на нее ориентируются сборщики (Maven, Gradle) и многие инструменты, — и переменная PATH, которая решает, какой java запустится из терминала.
Linux — самый простой способ, если версии ставились через apt/dnf:
sudo update-alternatives --config java
Команда покажет пронумерованный список установленных JDK — выберите номер. Так меняется java в PATH; для сборщиков отдельно задайте JAVA_HOME.
macOS — активный JDK подставляет утилита java_home:
export JAVA_HOME=$(/usr/libexec/java_home -v 21)
Строку добавьте в ~/.zshrc (в новых macOS оболочка по умолчанию — zsh), чтобы настройка сохранялась между сессиями.
Windows — задайте JAVA_HOME в «Переменные среды» (Система -> Дополнительные параметры -> Переменные среды), укажите путь к папке JDK, например C:\Program Files\Eclipse Adoptium\jdk-21, и добавьте %JAVA_HOME%\bin в начало Path.
Кросс-платформенно — менеджер версий SDKMAN (Linux и macOS; на Windows — через WSL или Git Bash). Он держит несколько JDK и переключает их одной командой:
sdk install java 21.0.4-tem # поставить Temurin 21
sdk use java 21.0.4-tem # переключить в текущей сессии
sdk default java 21.0.4-tem # сделать версией по умолчанию
Точные идентификаторы сборок смотрите в sdk list java — они регулярно обновляются.
Дорожная карта: от старой версии к рабочей новой
Пошагово, до проверяемого результата. Обычно это 15-30 минут — основную часть занимает скачивание.
- Узнайте, что стоит сейчас:
java -versionиjavac -version. - Выберите целевую версию (LTS 17/21/25) и дистрибутив (например, Temurin).
- Установите ее способом из шага 2 (установщик, winget/brew/apt/dnf или SDKMAN).
- Настройте активную версию:
JAVA_HOMEплюсPATH, либоupdate-alternatives, либоsdk use. - Откройте новый терминал и снова выполните
java -versionиjavac -version.
Артефакт готов, когда обе команды в новом окне терминала показывают номер, который вы ставили. Если проект собирается через Maven или Gradle, дополнительно проверьте mvn -version или gradle -version — они печатают, какой JDK видят через JAVA_HOME.
Если не получилось
Разберем по симптому — как вы это заметите.
java -version показывает старую версию после установки. Самая частая причина — в PATH первой стоит старая Java. На Windows установщики Oracle кладут прослойку в C:\ProgramData\Oracle\Java\javapath в начало PATH, и она перебивает новую. Проверьте, что именно запускается: where java (Windows) или which java (macOS/Linux). Уберите старый путь из PATH или поставьте новый выше, откройте новый терминал (старый читает PATH только при запуске).
java: команда не найдена (или command not found). Java не в PATH. Найдите папку установки и добавьте ее подкаталог bin в PATH; проще всего задать JAVA_HOME и добавить %JAVA_HOME%\bin (Windows) или $JAVA_HOME/bin (Unix).
java работает, а javac нет. Установлена только среда выполнения без компилятора. Поставьте полный JDK (на Linux — пакет с суффиксом -jdk/-devel).
Сборщик берет не ту версию. Maven и Gradle смотрят на JAVA_HOME, а не на PATH. Обновите JAVA_HOME и проверьте через mvn -version / gradle -version, какой JDK они видят.
IDE игнорирует изменения. IntelliJ IDEA, Eclipse и подобные хранят свой путь к JDK в настройках проекта и не читают системный JAVA_HOME автоматически. Пропишите новый JDK в настройках проекта отдельно.
Выводы
- Обновление Java на практике — это установка нового JDK и переключение на него активной версии, а не апдейт одной программы; старые механизмы Java 8 (автообновление, Java Control Panel) в актуальных версиях не работают.
- Сначала проверьте, что стоит: java -version показывает среду выполнения, javac -version — компилятор; если второй команды нет, установлен только JRE без JDK.
- В 2026 году для стабильной работы берут LTS-версию (17, 21 или 25) и дистрибутив OpenJDK, например Eclipse Temurin; конкретный список LTS стоит сверить по календарю OpenJDK.
- Ставится JDK штатно: установщиком, пакетным менеджером (winget, brew, apt, dnf) или менеджером версий SDKMAN, который удобен, когда нужно держать несколько версий сразу.
- Активную версию задают через JAVA_HOME и PATH (или update-alternatives, sdk use); самая частая ошибка — старый путь остался первым в PATH, поэтому java -version в новом терминале показывает прежнюю версию.
Где применяется / связь с практикой
Умение поставить нужный JDK и переключать версии — базовый навык при работе с любым Java-проектом: разные сервисы и учебные задания нередко требуют разных версий, и без управления JAVA_HOME собрать их на одной машине не выйдет. Тот же подход с менеджером версий и переменными окружения переносится на Android-разработку и на инструменты, которые работают поверх JVM.
Освойте тему на практике
Освоить Java с нуля — синтаксис, сборку проектов, работу с окружением — можно на курсе java-basic в Otus. Посмотреть формат занятий и уровень, ничего не оплачивая, помогут бесплатные вебинары — там разбирают практические задачи и отвечают на вопросы.
Смежные темы: Знакомство с JavaFX, Android SDK: инициализация, настройка, запуск.
FAQ
Обязательно ли удалять старую версию перед установкой новой?
Нет. Несколько JDK спокойно живут рядом, а активную вы задаете через JAVA_HOME и PATH или менеджером версий. Удалять старую стоит, только если она больше не нужна или мешает (перебивает новую в PATH).
Java на моем компьютере и Java в браузере — это одно и то же?
Нет. Браузерный плагин Java (апплеты) и связанная с ним панель Java Control Panel с авто-обновлением относились к устаревшей потребительской Java 8; современные браузеры апплеты не поддерживают. Серверная и десктопная Java обновляется установкой нового JDK, как описано выше.
Как обновить Java внутри проекта, а не во всей системе?
Версию, с которой собирается проект, задают в его настройках: в Maven — через maven.compiler.release, в Gradle — через toolchain/sourceCompatibility, плюс JAVA_HOME для запуска сборки. Это позволяет держать системную Java одной, а проект собирать под другую.



