Гид по технологиям

Установка Java 17 на Debian 11 — пошаговое руководство

5 min read Java Обновлено 26 Nov 2025
Установка Java 17 на Debian 11
Установка Java 17 на Debian 11

Иллюстрация Java

Java — это объектно-ориентированный язык программирования, широко используемый в корпоративных и встраиваемых системах. Java позволяет писать как объектно-ориентированный, так и процедурный код в одном проекте. JDK (Java Development Kit) — это комплект разработчика, который содержит компилятор (javac), исполняющую среду (JRE) и инструменты для сборки и отладки.

Важно: Java 17 является долгосрочной версией поддержки (LTS) и подходит для большинства новых и существующих проектов, требующих стабильности и длительной поддержки.

Основные понятия в одну строку

  • JDK: набор инструментов для разработки Java-приложений.
  • JRE: среда выполнения Java-приложений (без компилятора).
  • JAVA_HOME: переменная окружения, указывающая на корневой каталог установленного JDK.

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

  • Сервер или рабочая станция с Debian 11 (Bullseye) и доступом в интернет.
  • Не менее 3.5 ГБ свободной оперативной памяти для комфортной работы системы.
  • Непривилегированный пользователь с правами sudo.

Шаг 1. Обновление системы

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

sudo apt update && sudo apt upgrade -y

Команда может занять несколько минут в зависимости от скорости сети и объёма обновлений.

Шаг 2. Установка OpenJDK 17 на Debian 11

Проверьте, установлена ли Java уже на системе:

java -version

Если Java не установлена, вы увидите соответствующее сообщение. Для поиска пакетов OpenJDK 17 можно воспользоваться apt-cache:

sudo apt-cache search openjdk | grep 17

Результат поиска пакетов openjdk, отфильтрованных по 17

Установите JDK и JRE командой:

sudo apt install openjdk-17-jdk

При необходимости можно отдельно установить JRE:

sudo apt install openjdk-17-jre

После завершения установки проверьте версию Java и компилятора:

java -version
javac -version

Ожидаемый результат — номера версий OpenJDK 17 в выводе команд.

Шаг 3. Настройка переменной окружения JAVA_HOME

Некоторые приложения требуют переменной JAVA_HOME. Последующие шаги задают её глобально для всех пользователей.

  1. Узнайте путь до установленной Java через update-alternatives:
sudo update-alternatives --config java

В выводе будет путь наподобие /usr/lib/jvm/java-17-openjdk-amd64/bin/java — используйте корневой каталог без /bin/java, например /usr/lib/jvm/java-17-openjdk-amd64.

  1. Откройте файл окружения и добавьте переменную:
sudo nano /etc/environment

Добавьте в конец файла строку вида:

export JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"

Сохраните и закройте файл (CTRL+X, Y, Enter).

  1. Примените изменения:
sudo source /etc/environment
  1. Проверьте:
echo $JAVA_HOME

Вы должны увидеть путь к установленному JDK 17.

Важно: если вы используете другие версии OpenJDK, обязательно указывайте корректный путь к нужной версии.

Шаг 4. Тестирование установки

Создадим простое Java-приложение, скомпилируем и запустим его.

  1. Создайте рабочую директорию и перейдите в неё:
mkdir helloworld && cd helloworld
  1. Создайте файл helloworld.java:
sudo nano helloworld.java

Вставьте код:

public class helloworld{
   public static void main(String[] args) {
      System.out.println("Howtoforge-Hello World");
   }
}

Сохраните и закройте.

  1. Скомпилируйте:
javac helloworld.java

Команда создаст файл helloworld.class.

  1. Запустите программу:
java helloworld

Ожидаемый вывод: Howtoforge-Hello World

Если вы видите это сообщение — установка и базовая конфигурация прошли успешно.

Частые проблемы и отладка

  • Проблема: команда java не найдена или выводит старую версию.

    • Проверьте /etc/environment и PATH. Убедитесь, что переменная JAVA_HOME указывает на корректный JDK и что /usr/bin/java через update-alternatives указывает на желаемую версию.
    • Перезапустите сессию или выполните source /etc/environment.
  • Проблема: ошибки при запуске приложений, требующих JAVA_HOME.

    • Убедитесь, что экспорт выполнен глобально (в /etc/environment) или локально в профиле пользователя (~/.bashrc, ~/.profile).
  • Проблема: конфликт версий (несколько установок OpenJDK/Oracle JDK).

    • Используйте sudo update-alternatives –config java и sudo update-alternatives –config javac, чтобы выбрать версию по умолчанию.
  • Проблема: сетевые ошибки при apt install.

    • Проверьте подключение к интернету и зеркала Debian в /etc/apt/sources.list. Попробуйте apt update и повторите установку.

Альтернативные подходы

  • Установка Oracle JDK: подходит, если проект требует именно Oracle-клиент. Требует загрузки с сайта Oracle и согласия лицензии.
  • SDKMAN: менеджер версий SDK для Java, удобен для локальной установки и переключения между версиями на пользовательском уровне. Команда: curl -s “https://get.sdkman.io” | bash
  • Docker-контейнеры: запуск Java-приложений внутри контейнера с нужной версией JDK уменьшает влияние глобальной конфигурации системы.

Когда стоит выбрать альтернативы:

  • Если нужна несколько версий для разработки — используйте SDKMAN.
  • Если требуется полная совместимость с коммерческим стеком — рассмотрите Oracle JDK при соблюдении лицензионных требований.

Безопасность и лучшие практики

  • Устанавливайте JDK из доверенных репозиториев (официальные репозитории Debian или репозитории проверенных вендоров).
  • Не запускайте Java-приложения от root без необходимости.
  • Поддерживайте систему в актуальном состоянии: включите unattended-upgrades для автоматических обновлений безопасности, если это допустимо в вашей среде.
  • Ограничьте сетевые привилегии серверов и используйте брандмауэр.

Совместимость и миграция

  • Java 17 — LTS, но при переходе с Java 8 или 11 проверьте возможные несовместимости API и удалённые/изменённые методы.
  • Протестируйте критические пути приложения на тестовом окружении перед обновлением продакшна.
  • Используйте инструменты статического анализа и модульного тестирования для выявления проблем при миграции.

Контрольные тесты и критерии приёмки

  • java -version и javac -version должны возвращать OpenJDK 17.
  • echo $JAVA_HOME показывает путь к каталогу JDK 17.
  • Скомпилированный и запущенный helloworld выводит ожидаемую строку.
  • CI-пайплайны успешно собирают и запускают юнит-тесты с новой версией JDK.

Роли и чеклист

  • Для системного администратора:

    • Обновить пакетные индексы и установить openjdk-17-jdk.
    • Настроить /etc/environment и проверить на нескольких пользователях.
    • Настроить мониторинг и обновления безопасности.
  • Для разработчика:

    • Проверить компиляцию и прогон unit/integration тестов.
    • Обратить внимание на предупреждения deprecation и несовместимости.

Фактовый блок

  • Платформа: Debian 11 (Bullseye).
  • Рекомендуемая версия: OpenJDK 17 (LTS).
  • Минимальные RAM для нормальной работы системы: ≈3.5 ГБ.

Короткое объявление для команды (100–200 слов)

Установлен OpenJDK 17 на серверах с Debian 11: JDK и JRE доступны через стандартный репозиторий apt. Для корректной работы приложений настроена глобальная переменная JAVA_HOME в /etc/environment. Перед переходом приложений на JDK 17 рекомендуется провести тестирование в staging, чтобы выявить возможные несовместимости. Для разработчиков доступен быстрый чеклист: проверить javac/java, прогнать unit-тесты и обновить CI-конфигурации.

Глоссарий в одну строку

  • JDK — инструменты для разработки Java-программ.
  • JRE — среда выполнения Java-программ.
  • javac — компилятор Java-кода.
  • JAVA_HOME — переменная окружения, указывающая на корневой каталог JDK.

Итог

Вы успешно узнали, как установить OpenJDK 17 на Debian 11, настроить JAVA_HOME и проверить работу простого приложения. В статье приведены рекомендации по отладке, альтернативные подходы, советы по безопасности и контрольные тесты для приёмки.

Важно: перед обновлением продакшен-сервисов обязательно прогоните тесты и подготовьте план отката.

Спасибо за прочтение. Если остались вопросы — напишите комментарий или обратитесь к документации выбранного JDK.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Image Clipper в Samsung Gallery: как вырезать объект
Мобильные советы

Image Clipper в Samsung Gallery: как вырезать объект

Как быстро включить фонарик на Android
Android.

Как быстро включить фонарик на Android

Как делиться экраном в Discord — руководство
Руководство

Как делиться экраном в Discord — руководство

Установка Microsoft Teredo в Windows 10
Windows

Установка Microsoft Teredo в Windows 10

Красный индикатор CPU: причины и исправления
Аппаратное обеспечение

Красный индикатор CPU: причины и исправления

Исправить ошибку xapofx1_5.dll — руководство
Windows

Исправить ошибку xapofx1_5.dll — руководство