OpenJDK 21 — это LTS-версия Java, которая широко используется в современных enterprise-приложениях. На ней работают Spring Boot 3.x, Gradle, Jenkins и многие другие инструменты. Java 21 привнесла виртуальные потоки (virtual threads), улучшенный паттерн-матчинг и другие важные возможности.
В этом руководстве я покажу два способа установки OpenJDK 21 на Debian:
- Из официальных репозиториев Debian (только Debian 13)
- Из репозитория Eclipse Temurin (Adoptium) (Debian 12 и 11)
| Метод | Источник | Версия | Обновления | Для кого |
|---|---|---|---|---|
| Debian APT | Репозитории Debian | 21.0.x | Через apt upgrade | Debian 13 |
| Eclipse Temurin | Adoptium репозиторий | 21.0.x | Через apt upgrade | Debian 12 и 11 |
⚠️ Важно: Debian 12 и 11 не содержат openjdk-21-jdk в официальных репозиториях. Используйте метод Temurin.
Предварительные требования
Перед установкой убедитесь, что:
- Вы имеете права
sudo(администратора)
⚠️ ВАЖНО: Проверьте права sudo перед установкой
Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:
sudo whoami
Что делает: sudo — выполняет команду от имени суперпользователя; whoami — показывает имя текущего пользователя.
✅ Ожидаемый вывод в терминале:
root
❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.
Способ 1: Установка OpenJDK 21 из репозиториев Debian (Debian 13)
Шаг 1: Обновите систему
sudo apt update && sudo apt upgrade -y
Шаг 2: Найдите доступные пакеты OpenJDK 21
apt-cache policy openjdk-21-jdk
✅ Ожидаемый вывод: Должна быть строка с trixie/main.
Шаг 3: Выберите подходящий пакет
| Пакет | Для чего |
|---|---|
openjdk-21-jdk | Полная разработка (компилятор + runtime) |
openjdk-21-jdk-headless | Разработка на сервере без GUI |
openjdk-21-jre | Только запуск приложений (без компилятора) |
openjdk-21-jre-headless | Запуск на сервере без GUI |
Шаг 4: Установите JDK (или JRE)
sudo apt install -y openjdk-21-jdk
Шаг 5: Проверьте установку
java --version
✅ Ожидаемый вывод (Debian 13):
openjdk 21.0.10 2026-01-20
OpenJDK Runtime Environment (build 21.0.10+7-Debian-1deb13u1)
OpenJDK 64-Bit Server VM (build 21.0.10+7-Debian-1deb13u1, mixed mode, sharing)
Если установили JDK, проверьте компилятор:
javac --version
✅ Ожидаемый вывод: javac 21.0.10
Способ 2: Установка OpenJDK 21 из репозитория Eclipse Temurin (Debian 12 и 11)
Шаг 1: Обновите систему
sudo apt update && sudo apt upgrade -y
Шаг 2: Установите зависимости
sudo apt install -y ca-certificates curl gpg
Шаг 3: Добавьте GPG-ключ Adoptium
curl -fsSL https://packages.adoptium.net/artifactory/api/gpg/key/public | sudo gpg --dearmor --yes -o /usr/share/keyrings/adoptium.gpg
Шаг 4: Добавьте репозиторий Adoptium
. /etc/os-release
printf '%s\n' \
'Types: deb' \
'URIs: https://packages.adoptium.net/artifactory/deb' \
"Suites: $VERSION_CODENAME" \
'Components: main' \
"Architectures: $(dpkg --print-architecture)" \
'Signed-By: /usr/share/keyrings/adoptium.gpg' | sudo tee /etc/apt/sources.list.d/adoptium.sources > /dev/null
Шаг 5: Обновите список пакетов
sudo apt update
Шаг 6: Проверьте, что пакет temurin-21-jdk виден
apt-cache policy temurin-21-jdk
✅ Ожидаемый вывод: Должна быть строка с packages.adoptium.net.
Шаг 7: Установите Temurin 21 JDK
sudo apt install -y temurin-21-jdk
Для JRE (только запуск):
sudo apt install -y temurin-21-jre
Шаг 8: Проверьте установку
java --version
✅ Ожидаемый вывод:
openjdk 21.0.10 2026-01-20 LTS
OpenJDK Runtime Environment Temurin-21.0.10+7 (build 21.0.10+7-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.10+7 (build 21.0.10+7-LTS, mixed mode, sharing)
javac --version
✅ Ожидаемый вывод: javac 21.0.10
Управление несколькими версиями Java
Если у вас установлено несколько версий Java (например, 11, 17, 21, 25), вы можете переключаться между ними.
Переключение между версиями (java)
sudo update-alternatives --config java
Что делает: Показывает список установленных версий Java. Введите номер нужной и нажмите Enter.
Переключение между версиями компилятора (javac)
sudo update-alternatives --config javac
Настройка JAVA_HOME
Шаг 1: Определите путь к Java
dirname "$(dirname "$(readlink -f /usr/bin/java)")"
✅ Ожидаемый вывод (Debian APT): /usr/lib/jvm/java-21-openjdk-amd64
✅ Ожидаемый вывод (Temurin): /usr/lib/jvm/temurin-21-jdk-amd64
Шаг 2: Добавьте переменную в ~/.bashrc
echo 'export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64' >> ~/.bashrc
source ~/.bashrc
(замените путь на тот, что определили в шаге 1)
Шаг 3: Проверьте переменную
echo $JAVA_HOME
Тестовый пример
Шаг 1: Создайте файл HelloJava21.java
cat > ~/HelloJava21.java <<'EOF'
public class HelloJava21 {
public static void main(String[] args) {
System.out.println("Hello from Java 21 on Debian!");
}
}
EOF
Шаг 2: Скомпилируйте и запустите
javac ~/HelloJava21.java && java -cp ~ HelloJava21
✅ Ожидаемый вывод:
Hello from Java 21 on Debian!
Обновление OpenJDK 21
Обновление Debian APT-версии
sudo apt update && sudo apt install --only-upgrade openjdk-21-jdk -y
Обновление Temurin-версии
sudo apt update && sudo apt install --only-upgrade temurin-21-jdk -y
Решение типичных проблем
8.1 Ошибка: Unable to locate package openjdk-21-jdk на Debian 12/11
Симптом: sudo apt install openjdk-21-jdk не находит пакет.
Причина: Debian 12 и 11 не содержат OpenJDK 21 в официальных репозиториях.
Пошаговое решение:
Используйте метод 2 (Eclipse Temurin).
8.2 Ошибка: Неправильная версия Java активна
Симптом: java --version показывает не Java 21.
Причина: Установлена другая версия Java с более высоким приоритетом.
Пошаговое решение:
Переключитесь на нужную версию через update-alternatives:
sudo update-alternatives --config java
sudo update-alternatives --config javac
8.3 Ошибка: JAVA_HOME указывает на неверный путь
Симптом: echo $JAVA_HOME показывает старый путь.
Причина: JAVA_HOME не обновился после смены версии.
Пошаговое решение:
Заново определите путь и обновите переменную:
JAVA_HOME_PATH=$(dirname "$(dirname "$(readlink -f /usr/bin/java)")")
sed -i "s|^export JAVA_HOME=.*|export JAVA_HOME=${JAVA_HOME_PATH}|" ~/.bashrc
source ~/.bashrc
8.4 Ошибка: Компилятор использует другую версию
Симптом: java --version показывает 21, а javac --version показывает 11.
Причина: update-alternatives для javac не переключён.
Пошаговое решение:
Переключите компилятор:
sudo update-alternatives --config javac
8.5 Ошибка: GPG key error при apt update (Temurin)
Симптом: sudo apt update выдаёт ошибку NO_PUBKEY или Signed-By.
Причина: Проблемы с GPG-ключом Adoptium.
Пошаговое решение:
Переустановите ключ и репозиторий:
sudo rm -f /etc/apt/sources.list.d/adoptium.sources /usr/share/keyrings/adoptium.gpg
curl -fsSL https://packages.adoptium.net/artifactory/api/gpg/key/public | sudo gpg --dearmor --yes -o /usr/share/keyrings/adoptium.gpg
. /etc/os-release
printf '%s\n' \
'Types: deb' \
'URIs: https://packages.adoptium.net/artifactory/deb' \
"Suites: $VERSION_CODENAME" \
'Components: main' \
"Architectures: $(dpkg --print-architecture)" \
'Signed-By: /usr/share/keyrings/adoptium.gpg' | sudo tee /etc/apt/sources.list.d/adoptium.sources > /dev/null
sudo apt update
Чек-лист: что проверить после установки
- [ ] Java установлена:
java --version→openjdk 21.0.xилиTemurin-21.0.x - [ ] Компилятор установлен (если нужен JDK):
javac --version→javac 21.0.x - [ ] JAVA_HOME настроен:
echo $JAVA_HOME→ путь к JDK 21 - [ ] update-alternatives работает:
sudo update-alternatives --config javaпоказывает версию 21 - [ ] Тестовая программа компилируется и запускается:
javacиjavaработают
Удаление OpenJDK 21
Удаление Debian APT-версии
sudo apt remove openjdk-21-jdk openjdk-21-jre openjdk-21-jdk-headless openjdk-21-jre-headless
sudo apt autoremove
Удаление Temurin-версии
sudo apt remove temurin-21-jdk temurin-21-jre
sudo apt autoremove
Удаление репозитория Adoptium (если больше не нужен)
sudo rm -f /etc/apt/sources.list.d/adoptium.sources
sudo rm -f /usr/share/keyrings/adoptium.gpg
sudo apt update
Часто задаваемые вопросы (FAQ)
Вопрос: Какая версия Java в Debian 13 по умолчанию?
Ответ: Debian 13 (Trixie) содержит OpenJDK 21 как часть default-jdk.
Вопрос: Поддерживает ли Debian 12 OpenJDK 21?
Ответ: Нет, в официальных репозиториях Debian 12 нет OpenJDK 21. Используйте Eclipse Temurin.
Вопрос: Temurin — это та же Java, что и OpenJDK?
Ответ: Да, Temurin — это сборка OpenJDK, сертифицированная Java TCK (Technology Compatibility Kit).
Вопрос: Как проверить, какая Java активна?
Ответ: java --version покажет версию. update-alternatives --config java покажет все установленные.
Вопрос: Нужно ли удалять старую Java перед установкой новой?
Ответ: Нет, можно установить несколько версий и переключаться через update-alternatives.
Заключение
Теперь OpenJDK 21 установлен на вашем Debian. Вы можете разрабатывать и запускать Java-приложения с использованием последних LTS-возможностей.
Что дальше?
- Установите Apache Maven для управления зависимостями
- Установите Git для контроля версий
- Установите IntelliJ IDEA или VS Code