Установка OpenJDK 17 на Debian 13, 12, 11: полное руководство

OpenJDK 17 — это LTS-версия Java, которая широко используется в enterprise-разработке. На ней работают Spring Boot 3.x, Jakarta EE 10, Jenkins, Gradle и многие другие инструменты. Даже после выхода Java 21 и 25, Java 17 остаётся практичным LTS-базисом для существующих приложений.

В этом руководстве я покажу два способа установки OpenJDK 17 на Debian:

  1. Из официальных репозиториев Debian (для Debian 12 и 11)
  2. Из репозитория Eclipse Temurin (Adoptium) (для Debian 13, 12, 11)
МетодИсточникВерсияОбновленияДля кого
Debian APTРепозитории
Debian
17.0.xЧерез
apt upgrade
Debian 12 и 11
Eclipse TemurinAdoptium
репозиторий
17.0.xЧерез
apt upgrade
Debian 13 (и 12/11)

⚠️ Важно: Debian 13 (Trixie) не содержит пакет openjdk-17-jdk в официальных репозиториях. Используйте метод Temurin.


Оглавление

Предварительные требования

Перед установкой убедитесь, что:

  • Вы имеете права sudo (администратора)

⚠️ ВАЖНО: Проверьте права sudo перед установкой

Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:

sudo whoami

Что делает: sudo — выполняет команду от имени суперпользователя; whoami — показывает имя текущего пользователя.

Ожидаемый вывод в терминале:

root

❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.


Способ 1: Установка OpenJDK 17 из репозиториев Debian (Debian 12 и 11)

Этот метод работает на Debian 12 (Bookworm) и Debian 11 (Bullseye). Debian 13 не поддерживает этот метод.

Шаг 1: Обновите систему

sudo apt update && sudo apt upgrade -y

Шаг 2: Найдите доступные пакеты OpenJDK 17

apt-cache search ^openjdk-17 | sed -n '1,8p'

Ожидаемый вывод: Список пакетов (jdk, jre, headless, demo, doc).

Шаг 3: Выберите подходящий пакет

ПакетДля чего
openjdk-17-jdkПолная разработка (компилятор + runtime)
openjdk-17-jreТолько запуск приложений (без компилятора)
openjdk-17-jdk-headlessРазработка на сервере без GUI
openjdk-17-jre-headlessЗапуск на сервере без GUI

Шаг 4: Установите JDK (или JRE)

sudo apt install -y openjdk-17-jdk

Шаг 5: Проверьте установку

java --version

Ожидаемый вывод (Debian 12):

openjdk 17.0.19 2026-04-21
OpenJDK Runtime Environment (build 17.0.19+10-1-deb12u2-Debian)
OpenJDK 64-Bit Server VM (build 17.0.19+10-1-deb12u2-Debian, mixed mode, sharing)

Если установили JDK, проверьте компилятор:

javac --version

Ожидаемый вывод: javac 17.0.19


Способ 2: Установка OpenJDK 17 из репозитория Eclipse Temurin (Debian 13, 12, 11)

Этот метод работает на всех версиях Debian (13, 12, 11) и даёт одинаковую сборку OpenJDK.

Шаг 1: Установите зависимости

sudo apt install -y ca-certificates curl gpg

Шаг 2: Добавьте GPG-ключ Adoptium

curl -fsSL https://packages.adoptium.net/artifactory/api/gpg/key/public | sudo gpg --dearmor --yes -o /usr/share/keyrings/adoptium.gpg

Шаг 3: Добавьте репозиторий Adoptium

printf '%s\n' \
'Types: deb' \
'URIs: https://packages.adoptium.net/artifactory/deb' \
"Suites: $(. /etc/os-release && echo "$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

Шаг 4: Обновите список пакетов

sudo apt update

Шаг 5: Проверьте, что пакет temurin-17-jdk виден

apt-cache policy temurin-17-jdk

Ожидаемый вывод: Должна быть строка с packages.adoptium.net.

Шаг 6: Установите Temurin 17 JDK

sudo apt install -y temurin-17-jdk

Для JRE (только запуск):

sudo apt install -y temurin-17-jre

Шаг 7: Проверьте установку

java --version

Ожидаемый вывод:

openjdk 17.0.19 2026-04-21
OpenJDK Runtime Environment Temurin-17.0.19+10 (build 17.0.19+10)
OpenJDK 64-Bit Server VM Temurin-17.0.19+10 (build 17.0.19+10, mixed mode, sharing)
javac --version

Ожидаемый вывод: javac 17.0.19


Управление несколькими версиями Java

Если у вас установлено несколько версий Java (например, 11, 17, 21, 25), вы можете переключаться между ними.

Переключение между версиями (java)

sudo update-alternatives --config java

Что делает: Показывает список установленных версий Java. Введите номер нужной и нажмите Enter.

Переключение между версиями компилятора (javac)

sudo update-alternatives --config javac

Настройка JAVA_HOME

Шаг 1: Определите путь к Java

JAVA_HOME_PATH=$(dirname "$(dirname "$(readlink -f "$(command -v java)")")")
echo $JAVA_HOME_PATH

Ожидаемый вывод (Debian APT): /usr/lib/jvm/java-17-openjdk-amd64
Ожидаемый вывод (Temurin): /usr/lib/jvm/temurin-17-jdk-amd64

Шаг 2: Добавьте переменную в ~/.bashrc

if grep -q '^export JAVA_HOME=' ~/.bashrc; then
  sed -i "s|^export JAVA_HOME=.*|export JAVA_HOME=${JAVA_HOME_PATH}|" ~/.bashrc
else
  echo "export JAVA_HOME=${JAVA_HOME_PATH}" >> ~/.bashrc
fi
source ~/.bashrc

Шаг 3: Проверьте переменную

echo $JAVA_HOME

Тестовый пример

Шаг 1: Создайте файл HelloOpenJDK17.java

cat > ~/HelloOpenJDK17.java <<'EOF'
public class HelloOpenJDK17 {
    public static void main(String[] args) {
        System.out.println("Hello from OpenJDK 17 on Debian!");
    }
}
EOF

Шаг 2: Скомпилируйте и запустите

javac ~/HelloOpenJDK17.java && java -cp ~ HelloOpenJDK17

Ожидаемый вывод:

Hello from OpenJDK 17 on Debian!

Обновление OpenJDK 17

Обновление Debian APT-версии

sudo apt update && sudo apt install --only-upgrade openjdk-17-jdk -y

Обновление Temurin-версии

sudo apt update && sudo apt install --only-upgrade temurin-17-jdk -y

Решение типичных проблем

8.1 Ошибка: Unable to locate package openjdk-17-jdk на Debian 13

Симптом: sudo apt install openjdk-17-jdk не находит пакет.

Причина: Debian 13 (Trixie) не содержит OpenJDK 17 в официальных репозиториях.

Пошаговое решение:

Используйте метод 2 (Eclipse Temurin).


8.2 Ошибка: Неправильная версия Java активна

Симптом: java --version показывает не Java 17.

Причина: Установлена другая версия Java с более высоким приоритетом.

Пошаговое решение:

Переключитесь на нужную версию через update-alternatives:

sudo update-alternatives --config java
sudo update-alternatives --config javac

8.3 Ошибка: Signed-By conflict с extrepo

Симптом: sudo apt update выдаёт ошибку конфликта Signed-By.

Причина: Раньше вы использовали extrepo для Temurin, а теперь добавляете ручной репозиторий.

Пошаговое решение:

Шаг 1: Удалите старые файлы extrepo:

sudo extrepo disable temurin
sudo rm -f /etc/apt/sources.list.d/extrepo_temurin.sources
sudo rm -f /var/lib/extrepo/keys/temurin.asc

Шаг 2: Обновите список пакетов:

sudo apt update

8.4 Ошибка: JAVA_HOME указывает на неверный путь

Симптом: echo $JAVA_HOME показывает старый путь (например, к Java 11 или 25).

Причина: JAVA_HOME не обновился после смены версии.

Пошаговое решение:

Заново определите путь и обновите переменную:

JAVA_HOME_PATH=$(dirname "$(dirname "$(readlink -f "$(command -v java)")")")
sed -i "s|^export JAVA_HOME=.*|export JAVA_HOME=${JAVA_HOME_PATH}|" ~/.bashrc
source ~/.bashrc

8.5 Ошибка: Компилятор использует другую версию

Симптом: java --version показывает 17, а javac --version показывает 11.

Причина: update-alternatives для javac не переключён.

Пошаговое решение:

Переключите компилятор:

sudo update-alternatives --config javac

Выберите нужную версию (Java 17).


Чек-лист: что проверить после установки

  • [ ] Java установлена: java --versionopenjdk 17.0.x или Temurin-17.0.x
  • [ ] Компилятор установлен (если нужен JDK): javac --versionjavac 17.0.x
  • [ ] JAVA_HOME настроен: echo $JAVA_HOME → путь к JDK 17
  • [ ] update-alternatives работает: sudo update-alternatives --config java показывает версию 17
  • [ ] Тестовая программа компилируется и запускается: javac и java работают

Удаление OpenJDK 17

Удаление Debian APT-версии

sudo apt remove openjdk-17-jdk openjdk-17-jre openjdk-17-jdk-headless openjdk-17-jre-headless
sudo apt autoremove

Удаление Temurin-версии

sudo apt remove temurin-17-jdk temurin-17-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 и 25, но не содержит OpenJDK 17.

Вопрос: Нужно ли устанавливать OpenJDK 17 на Debian 13?
Ответ: Да, если ваше приложение требует именно Java 17. Используйте метод Temurin.

Вопрос: Temurin — это та же Java, что и OpenJDK?
Ответ: Да, Temurin — это сборка OpenJDK, сертифицированная Java TCK.

Вопрос: Как проверить, какая Java активна?
Ответ: java --version покажет версию. update-alternatives --config java покажет все установленные.

Вопрос: Нужно ли удалять старую Java перед установкой новой?
Ответ: Нет, можно установить несколько версий и переключаться через update-alternatives.


Заключение

Теперь OpenJDK 17 установлен на вашем Debian. Вы можете разрабатывать и запускать Java-приложения, используя эту стабильную LTS-версию.

Что дальше?

  • Установите Apache Maven для управления зависимостями
  • Установите Git для контроля версий
  • Установите IntelliJ IDEA или VS Code