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

Установка Java (OpenJDK и Oracle JDK) на AlmaLinux 9

• 8 min read • Linux • Обновлено 26 Nov 2025
Установка Java на AlmaLinux 9 — OpenJDK и Oracle JDK
Установка Java на AlmaLinux 9 — OpenJDK и Oracle JDK

  • Быстрая задача: установите нужную версию Java (OpenJDK 11/17 или Oracle JDK 17/20) через dnf или RPM, затем укажите системную версию через alternatives и пропишите JAVA_HOME в /etc/profile.d или в ~/.bashrc для пользователей. Проверяйте версии командами java –version и javac –version.
  • Рекомендации: для серверных, стабильных решений выбирайте LTS-релизы (например, OpenJDK 17 или Oracle JDK 17). Для разработки и тестирования можно установить несколько версий и управлять ими через alternatives.

Схема установки Java на AlmaLinux 9

Java — это объектно-ориентированный язык программирования, созданный Sun Microsystems в 1995 году. Java — высокоуровневый язык, спроектированный для переносимости: однажды написанное приложение можно запускать на разных ОС без перекомпиляции, если среда выполнения поддерживает нужную версию Java.

В этом руководстве подробно рассмотрены варианты установки Java OpenJDK и/или Oracle JDK на сервер AlmaLinux 9, настройка переменной окружения JAVA_HOME и выбор версии Java по умолчанию.

Что нужно знать перед началом

Короткие определения:

  • JRE — Java Runtime Environment: среда выполнения, необходимая для запуска скомпилированных Java-приложений.
  • JDK — Java Development Kit: набор инструментов для разработки и компиляции Java-приложений. Включает JRE и дополнительные утилиты (javac, jdb, jshell и др.).

Требования:

  • Сервер AlmaLinux 9 с доступом по SSH и правами sudo.
  • Нерут-пользователь с sudo или root-доступ.

Важно: решите заранее, нужна ли вам OpenJDK (открытая реализация) или Oracle JDK (коммерческая сборка с отличиями в лицензировании и поставке обновлений). Оба варианта используют схожую кодовую базу, но различаются условиями обновлений и поддержкой.

Краткое сравнение OpenJDK и Oracle JDK

КритерийOpenJDKOracle JDK
ЛицензияОткрытая, GPL (обновления каждые 6 мес.)Коммерческая/подписка для обновлений в продакшене
ПоддержкаСообществом и поставщиками (например, Red Hat, Azul)Коммерческая поддержка от Oracle
ФункцииПолнофункциональная для большинства задачМожет включать дополнительные коммерческие компоненты
Сценарий использованияСерверы, облака, CI, контейнерыКоммерческие окружения с обязательной поддержкой и обновлениями

Примечание: не стоит полагаться только на утверждения о «производительности» — в реальных сценариях важно тестировать вашу нагрузку под обеими сборками.

Установка OpenJDK из репозитория AlmaLinux

AlmaLinux поставляет несколько сборок OpenJDK в репозитории AppStream (обычно это 11, 17 и выше). Установка выполняется через dnf.

Установка OpenJDK 11

Выполните команду:

sudo dnf install java-11-openjdk java-11-openjdk-devel

Когда будет запрос подтверждения, введите y и нажмите ENTER.

Установка OpenJDK 11 — вывод dnf и прогресс

Проверьте установленную версию:

java --version

Ожидаемый вывод: строка с указанием OpenJDK 11 и информации о поставщике.

Установка OpenJDK 17

Для установки OpenJDK 17 выполните:

sudo dnf install java-17-openjdk java-17-openjdk-devel

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

java --version

Установка OpenJDK 17 — вывод dnf и подтверждение

Если у вас установлено несколько версий Java, можно переключаться между ними через alternatives (см. ниже).

Установка Oracle JDK (RPM)

Oracle предоставляет RPM-пакеты для RedHat-подобных дистрибутивов. Вы можете скачать RPM напрямую с сайта Oracle с помощью curl и установить через rpm.

Сначала установите curl, если он не установлен:

sudo dnf install curl -y

Установка curl перед загрузкой Oracle JDK

В примерах показана установка Oracle JDK 17 (LTS) и Oracle JDK 20 (последняя на момент написания).

Установка Oracle JDK 17

Скачивание RPM:

curl -qO https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm

Установка RPM:

sudo rpm -ivh jdk-17_linux-x64_bin.rpm

Установка Oracle JDK 17 — rpm установщик

Проверка версии:

java --version

Вы увидите пометку Java SE Runtime Environment 17 в выводе.

Проверка Oracle JDK 17 — java --version

Установка Oracle JDK 20

Скачивание RPM:

curl -qO https://download.oracle.com/java/20/latest/jdk-20_linux-x64_bin.rpm

Установка RPM:

sudo rpm -ivh jdk-20_linux-x64_bin.rpm

Установка Oracle JDK 20 — процесс установки RPM

Проверка установки:

java --version

Ожидаемый вывод: Java SE Runtime Environment 20.

Проверка Oracle JDK 20 — java --version

Выбор версии Java по умолчанию (alternatives)

Если установлено несколько версий Java, используйте команду alternatives для выбора системной реализации.

Посмотреть текущие альтернативы:

sudo alternatives --list

Ожидаемый вывод — список путей и альтернатив для java, javac и т.д.

Вывод alternatives --list

Настроить java по умолчанию:

sudo alternatives --config java

Система покажет список доступных реализаций с номерами. Введите номер желаемой реализации и нажмите ENTER.

Пример: выбор OpenJDK 17.

Выбор java по умолчанию через alternatives

Проверьте итог:

java --version

Аналогично можно переключать javac:

sudo alternatives --config javac
javac --version

Переключение javac через alternatives

Для OpenJDK также могут быть альтернативы jre_openjdk и java_sdk_openjdk:

sudo alternatives --config jre_openjdk
sudo alternatives --config java_sdk_openjdk

Переключение JRE OpenJDK

Переключение JDK OpenJDK

Настройка JAVA_HOME

Многие приложения (Tomcat, Jenkins, Gradle и др.) зависят от переменной окружения JAVA_HOME, указывающей корневую директорию JDK/JRE.

Можно настроить переменную глобально (system-wide) или только для одного пользователя.

Системная настройка JAVA_HOME

Создайте сценарий в /etc/profile.d, например /etc/profile.d/java.sh. Он будет загружаться для всех пользователей при входе в систему.

Откройте редактор:

sudo nano /etc/profile.d/java.sh

Добавьте строку с путём к вашей установленной JDK. В примере — OpenJDK 17:

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

Сделайте файл исполняемым и загрузите его в текущую сессию:

sudo chmod +x /etc/profile.d/java.sh
source /etc/profile.d/java.sh

Проверьте значение:

echo $JAVA_HOME

Проверка system-wide JAVA_HOME в /etc/profile.d

Настройка JAVA_HOME для пользователя

Для индивидуальной настройки отредактируйте ~/.bashrc пользователя:

su - username
nano ~/.bashrc

Добавьте в конец:

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

Примените изменения и проверьте:

source ~/.bashrc
echo $JAVA_HOME

Проверка JAVA_HOME в ~/.bashrc

Критерии приёмки

Проверьте, что установка завершена и корректна:

  • java –version и javac –version возвращают ожидаемую версию.
  • alternatives показывает нужную реализацию как выбранную.
  • echo $JAVA_HOME возвращает корректный путь к JDK.
  • Для серверных приложений (Tomcat, Jenkins, Gradle) сборка и запуск тестового приложения проходят успешно.

Техническое руководство и процедуры (SOP)

Мини-SOP для администратора, чтобы быстро приготовить сервер:

  1. Обновите систему: sudo dnf update -y
  2. Установите нужные OpenJDK пакеты или скачайте Oracle RPM через curl.
  3. Установите RPM (если нужен Oracle): sudo rpm -ivh jdk-*.rpm
  4. Зарегистрируйте альтернативы (если не создались автоматически): sudo alternatives –install /usr/bin/java java /path/to/java 1
  5. Выберите java и javac через sudo alternatives –config
  6. Пропишите JAVA_HOME в /etc/profile.d/java.sh и примените изменения.
  7. Перезагрузите сервисы, зависящие от Java, и прогоните smoke-тесты.

Роль-ориентированные чек-листы

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

  • Убедиться в доступности RPM/репозитория.
  • Установить пакет и проверить пути /usr/lib/jvm/*.
  • Настроить alternatives.
  • Обновить документацию окружения.

Для разработчика:

  • Убедиться, что локальная версия Java совпадает с серверной при запуске CI.
  • Проверить javac и java версии.
  • Настроить IDE и переменные окружения (разработчик может использовать SDKMAN! для управления версиями локально).

Когда установка может не сработать (диагностика)

  1. Проблема: команда java не найдена.

    • Причина: бинарник не установлен в PATH или alternatives не настроен.
    • Решение: проверьте /usr/lib/jvm и выполните sudo alternatives –install … или создайте символьную ссылку.
  2. Проблема: неверная версия показывается после выбора alternatives.

    • Причина: осталось несколько записей в alternatives или PATH указывает на пользовательский bin.
    • Решение: выполните sudo alternatives –display java и удалите лишние альтернативы, проверьте ~/.bashrc и /etc/profile.d/*.sh.
  3. Проблема: приложение не видит JAVA_HOME.

    • Причина: переменная не экспортирована или файл не загружен.
    • Решение: проверьте, что в /etc/profile.d/java.sh переменная экспортируется или добавьте export JAVA_HOME.
  4. Проблема: конфликты пакетов при установке RPM.

    • Причина: более старая или альтернативная сборка путает RPM-базу.
    • Решение: используйте rpm -Uvh для обновления или удалите старую сборку через rpm -e .

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

  • SDKMAN! — удобный инструмент для разработчиков для управления несколькими версиями JDK на рабочей станции. Не рекомендуется как системное решение на сервере.
  • Контейнеризация — для приложений можно упаковать JVM внутрь контейнера (Docker), чтобы зафиксировать точную сборку Java и избежать глобальных переключений alternatives.
  • Поставщики сборок — Azul Zulu, Amazon Corretto, BellSoft Liberica предоставляют готовые сборки OpenJDK с длительной поддержкой и без коммерческих ограничений Oracle.

Метод выбора JDK — мини-методология

  1. Определите требования: LTS или последние фичи?
  2. Если нужна поддержка и обновления от вендора — рассмотрите коммерческие сборки.
  3. Для большинства серверных задач выбирайте OpenJDK LTS (например, 17).
  4. Для тестов и оценки новых функций установите новейшую версию параллельно и используйте alternatives.

Факто-бокс: ключевые моменты

  • OpenJDK и Oracle JDK имеют общий исходный код, но различаются лицензиями и допоставкой обновлений.
  • LTS (Long-Term Support) релизы рекомендуются для продакшена (например, 17 — LTS).
  • AlmaLinux 9 предоставляет OpenJDK 11 и 17 в AppStream.

Тесты приёмки (смoke tests)

  • java -version выводит ожидаемую строку релиза.
  • javac -version соответствует версии JDK.
  • echo $JAVA_HOME указывает на директорию с bin/java и bin/javac внутри.
  • Запуск простого Hello World на java и javac:
cat > Hello.java <<'EOF'
class Hello { public static void main(String[] args) { System.out.println("Hello"); } }
EOF
javac Hello.java
java Hello

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

Шаблон / Чек-лист развёртывания (короткий)

  • Обновить систему: sudo dnf update -y
  • Установить OpenJDK или скачать Oracle RPM
  • Установить пакет(ы)
  • Настроить alternatives для java и javac
  • Прописать JAVA_HOME и экспорт
  • Перезапустить зависимости и прогнать smoke-тесты
  • Обновить документацию окружения

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

  • При переходе на новую мажорную версию Java проверьте совместимость зависимостей (модули, сторонние библиотеки).
  • Сначала протестируйте приложения в staging с выбранной версией JDK.
  • Для сервисов с критичной поддержкой держите запасную среду («fallback») с предыдущей версией JDK.

Security / приватность

  • Загрузки Oracle JDK происходят с сайта Oracle по HTTPS — соблюдайте политику лицензирования Oracle при использовании в продакшене.
  • Для длительной бесплатной поддержки рассмотрите сборки от поставщиков с долгосрочной поддержкой (Amazon Corretto, Azul).

Примеры команд (справочник)

Установка OpenJDK 17 (devel включает инструменты сборки):

sudo dnf install java-17-openjdk java-17-openjdk-devel

Скачивание и установка Oracle RPM:

curl -qO https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm
sudo rpm -ivh jdk-17_linux-x64_bin.rpm

Просмотр альтернатив и выбор:

sudo alternatives --list
sudo alternatives --config java

Настройка JAVA_HOME system-wide:

sudo tee /etc/profile.d/java.sh <<'EOF'
export JAVA_HOME="/usr/lib/jvm/java-17-openjdk"
export PATH="$JAVA_HOME/bin:$PATH"
EOF
sudo chmod +x /etc/profile.d/java.sh
source /etc/profile.d/java.sh

Настройка JAVA_HOME для пользователя:

echo 'export JAVA_HOME="/usr/lib/jvm/java-17-openjdk"' >>~/.bashrc
echo 'export PATH="$JAVA_HOME/bin:$PATH"' >>~/.bashrc
source ~/.bashrc

Чек-лист завершения и контроль качества

  • java –version соответствует выбранной сборке
  • javac –version соответствует JDK
  • Проверены сервисы, использующие Java
  • Документация обновлена, пути и переменные зафиксированы

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

Обновили инструкцию по установке Java на AlmaLinux 9. В ней описаны шаги установки OpenJDK 11/17 через dnf и Oracle JDK 17/20 через RPM, процедура выбора версии по умолчанию с помощью alternatives и настройка переменной окружения JAVA_HOME как глобально, так и для пользователя. Рекомендуем использовать OpenJDK 17 для серверных окружений (LTS). Перед переходом на новую версию убедитесь в тестировании приложений в staging. Для разработчиков предусмотрены подсказки по локальному менеджменту версий и краткие тесты приёмки.

Заключение

Вы завершили настройку Java на AlmaLinux 9: установили OpenJDK и/или Oracle JDK, научились переключать версии с помощью alternatives и прописывать JAVA_HOME как системно, так и для пользователей. Следуйте чек-листу при развёртывании и обязательно тестируйте приложения при изменении версии JVM.

Короткое резюме:

  • Установите нужную сборку (OpenJDK или Oracle JDK).
  • Настройте alternatives для выбора версии.
  • Пропишите JAVA_HOME и протестируйте.

Спасибо — удачных развёртываний!

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

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро