Как обновить версию Java

Как обновить версию Java Полезное

Обновить 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

Два рабочих пути.

  1. Установщик с сайта. Скачайте .msi (или .exe) нужной версии с сайта дистрибутива (Adoptium, Oracle, Corretto), запустите и пройдите мастер. Установщик Temurin умеет сам прописать JAVA_HOME и путь — отметьте эти пункты в списке компонентов.
  2. Менеджер пакетов 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 минут — основную часть занимает скачивание.

  1. Узнайте, что стоит сейчас: java -version и javac -version.
  2. Выберите целевую версию (LTS 17/21/25) и дистрибутив (например, Temurin).
  3. Установите ее способом из шага 2 (установщик, winget/brew/apt/dnf или SDKMAN).
  4. Настройте активную версию: JAVA_HOME плюс PATH, либо update-alternatives, либо sdk use.
  5. Откройте новый терминал и снова выполните 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 одной, а проект собирать под другую.

OTUS Журнал
Скидка 5% 14-20 сентября на курсы (popup)