Установка Java (OpenJDK и Oracle JDK) на AlmaLinux 9
- Быстрая задача: установите нужную версию 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 — это объектно-ориентированный язык программирования, созданный 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
| Критерий | OpenJDK | Oracle 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.

Проверьте установленную версию:
java --versionОжидаемый вывод: строка с указанием OpenJDK 11 и информации о поставщике.
Установка OpenJDK 17
Для установки OpenJDK 17 выполните:
sudo dnf install java-17-openjdk java-17-openjdk-develПодтвердите установку и после завершения проверьте версию:
java --version
Если у вас установлено несколько версий Java, можно переключаться между ними через alternatives (см. ниже).
Установка Oracle JDK (RPM)
Oracle предоставляет RPM-пакеты для RedHat-подобных дистрибутивов. Вы можете скачать RPM напрямую с сайта Oracle с помощью curl и установить через rpm.
Сначала установите curl, если он не установлен:
sudo dnf install curl -y
В примерах показана установка 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
Проверка версии:
java --versionВы увидите пометку Java SE Runtime Environment 17 в выводе.

Установка 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
Проверка установки:
java --versionОжидаемый вывод: Java SE Runtime Environment 20.

Выбор версии Java по умолчанию (alternatives)
Если установлено несколько версий Java, используйте команду alternatives для выбора системной реализации.
Посмотреть текущие альтернативы:
sudo alternatives --listОжидаемый вывод — список путей и альтернатив для java, javac и т.д.

Настроить java по умолчанию:
sudo alternatives --config javaСистема покажет список доступных реализаций с номерами. Введите номер желаемой реализации и нажмите ENTER.
Пример: выбор OpenJDK 17.

Проверьте итог:
java --versionАналогично можно переключать javac:
sudo alternatives --config javac
javac --version
Для OpenJDK также могут быть альтернативы jre_openjdk и java_sdk_openjdk:
sudo alternatives --config jre_openjdk
sudo alternatives --config java_sdk_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
Настройка JAVA_HOME для пользователя
Для индивидуальной настройки отредактируйте ~/.bashrc пользователя:
su - username
nano ~/.bashrcДобавьте в конец:
JAVA_HOME="/usr/lib/jvm/java-17-openjdk"Примените изменения и проверьте:
source ~/.bashrc
echo $JAVA_HOME
Критерии приёмки
Проверьте, что установка завершена и корректна:
- java –version и javac –version возвращают ожидаемую версию.
- alternatives показывает нужную реализацию как выбранную.
- echo $JAVA_HOME возвращает корректный путь к JDK.
- Для серверных приложений (Tomcat, Jenkins, Gradle) сборка и запуск тестового приложения проходят успешно.
Техническое руководство и процедуры (SOP)
Мини-SOP для администратора, чтобы быстро приготовить сервер:
- Обновите систему: sudo dnf update -y
- Установите нужные OpenJDK пакеты или скачайте Oracle RPM через curl.
- Установите RPM (если нужен Oracle): sudo rpm -ivh jdk-*.rpm
- Зарегистрируйте альтернативы (если не создались автоматически): sudo alternatives –install /usr/bin/java java /path/to/java 1
- Выберите java и javac через sudo alternatives –config
- Пропишите JAVA_HOME в /etc/profile.d/java.sh и примените изменения.
- Перезагрузите сервисы, зависящие от Java, и прогоните smoke-тесты.
Роль-ориентированные чек-листы
Для системного администратора:
- Убедиться в доступности RPM/репозитория.
- Установить пакет и проверить пути /usr/lib/jvm/*.
- Настроить alternatives.
- Обновить документацию окружения.
Для разработчика:
- Убедиться, что локальная версия Java совпадает с серверной при запуске CI.
- Проверить javac и java версии.
- Настроить IDE и переменные окружения (разработчик может использовать SDKMAN! для управления версиями локально).
Когда установка может не сработать (диагностика)
Проблема: команда java не найдена.
- Причина: бинарник не установлен в PATH или alternatives не настроен.
- Решение: проверьте /usr/lib/jvm и выполните sudo alternatives –install … или создайте символьную ссылку.
Проблема: неверная версия показывается после выбора alternatives.
- Причина: осталось несколько записей в alternatives или PATH указывает на пользовательский bin.
- Решение: выполните sudo alternatives –display java и удалите лишние альтернативы, проверьте ~/.bashrc и /etc/profile.d/*.sh.
Проблема: приложение не видит JAVA_HOME.
- Причина: переменная не экспортирована или файл не загружен.
- Решение: проверьте, что в /etc/profile.d/java.sh переменная экспортируется или добавьте export JAVA_HOME.
Проблема: конфликты пакетов при установке RPM.
- Причина: более старая или альтернативная сборка путает RPM-базу.
- Решение: используйте rpm -Uvh для обновления или удалите старую сборку через rpm -e
.
Альтернативные подходы
- SDKMAN! — удобный инструмент для разработчиков для управления несколькими версиями JDK на рабочей станции. Не рекомендуется как системное решение на сервере.
- Контейнеризация — для приложений можно упаковать JVM внутрь контейнера (Docker), чтобы зафиксировать точную сборку Java и избежать глобальных переключений alternatives.
- Поставщики сборок — Azul Zulu, Amazon Corretto, BellSoft Liberica предоставляют готовые сборки OpenJDK с длительной поддержкой и без коммерческих ограничений Oracle.
Метод выбора JDK — мини-методология
- Определите требования: LTS или последние фичи?
- Если нужна поддержка и обновления от вендора — рассмотрите коммерческие сборки.
- Для большинства серверных задач выбирайте OpenJDK LTS (например, 17).
- Для тестов и оценки новых функций установите новейшую версию параллельно и используйте 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 и протестируйте.
Спасибо — удачных развёртываний!
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента