Установка Java на CentOS 8 — OpenJDK 8, OpenJDK 11 и Oracle JDK 8

Кому это полезно
- Системным администраторам и инженерам DevOps, которым нужно готовое окружение Java на CentOS 8.
- Разработчикам, которым требуется конкретная версия JDK для запуска приложений.
- Тем, кто переключает версии Java между OpenJDK и Oracle JDK.
Краткий обзор версий
- OpenJDK — открытая реализация Java Platform. Доступна в репозиториях CentOS 8.
- Oracle JDK — коммерческая реализация от Oracle, может содержать дополнительные проприетарные компоненты. Требует скачивания с сайта Oracle.
Важно: OpenJDK и Oracle JDK совместимы на уровне языка и большинства библиотек, но поведение JVM и наличие коммерческих фич могут различаться.
Требования
- Сервер с CentOS 8.
- Доступ root или sudo.
- Доступ в интернет для скачивания пакетов или локальный RPM для Oracle JDK.
Установка OpenJDK 11
Сначала найдём доступные пакеты OpenJDK в репозиториях CentOS 8:
dnf search jdk
В выводе вы увидите перечень пакетов, например:
Last metadata expiration check: 1:23:41 ago on Wednesday 18 December 2019 02:23:23 AM EST.
========================================================= Summary & Name Matched: jdk =========================================================
java-11-openjdk-demo.x86_64 : OpenJDK Demos 11
java-1.8.0-openjdk-demo.x86_64 : OpenJDK Demos 8
java-11-openjdk-jmods.x86_64 : JMods for OpenJDK 11
java-11-openjdk-src.x86_64 : OpenJDK Source Bundle 11
java-1.8.0-openjdk-src.x86_64 : OpenJDK Source Bundle 8
java-11-openjdk.x86_64 : OpenJDK Runtime Environment 11
copy-jdk-configs.noarch : JDKs configuration files copier
java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment 8
java-11-openjdk-javadoc.x86_64 : OpenJDK 11 API documentation
java-1.8.0-openjdk-javadoc.noarch : OpenJDK 8 API documentation
java-11-openjdk-devel.x86_64 : OpenJDK Development Environment 11
java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment 8
java-11-openjdk-headless.x86_64 : OpenJDK Headless Runtime Environment 11
java-1.8.0-openjdk-accessibility.x86_64 : OpenJDK 8 accessibility connector
java-1.8.0-openjdk-headless.x86_64 : OpenJDK Headless Runtime Environment 8
java-11-openjdk-javadoc-zip.x86_64 : OpenJDK 11 API documentation compressed in a single archive
java-1.8.0-openjdk-javadoc-zip.noarch : OpenJDK 8 API documentation compressed in a single archive
============================================================ Summary Matched: jdk =============================================================
icedtea-web.noarch : Additional Java components for OpenJDK - Java browser plug-in and Web Start implementation
Установите OpenJDK 11 с пакетом разработки (ключевое для сборки и большинства инструментов):
dnf install java-11-openjdk-devel.x86_64
Проверка установленной версии:
java -version
Ожидаемый пример вывода:
openjdk version "11.0.5" 2019-10-15 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.5+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode, sharing)
Установка OpenJDK 8
Некоторые приложения поддерживают только Java 8. Установите OpenJDK 8 командой:
dnf install java-1.8.0-openjdk-devel
Проверка версии:
java -version
Пример вывода:
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)
Переключение между версиями Java
На одной машине можно держать несколько версий JDK и переключаться между ними через alternatives.
Запустите:
alternatives --config java
Вам будет представлен список доступных реализаций, например:
There are 2 programs which provide 'java'.
Selection Command
-----------------------------------------------
1 java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.5.10-0.el8_0.x86_64/bin/java)
*+ 2 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el8_0.x86_64/jre/bin/java)
Enter to keep the current selection[+], or type selection number: 1
Введите номер нужной реализации и нажмите Enter. Повторно проверьте активную версию:
java -version
Важно: alternatives управляет не только java, но и javac, jar и другими ссылками — проверьте их при необходимости.
Установка Oracle JDK 8
- Зайдите на сайт Oracle и откройте страницу загрузки Oracle JDK 8.
- Примите лицензионное соглашение и скачайте пакет вида jdk-8u231-linux-x64.rpm.
- Перейдите в каталог со скачанным файлом и выполните:
dnf localinstall jdk-8u231-linux-x64.rpm
Проверка версии:
java -version
Ожидаемый вывод:
java version "1.8.0_231"
Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
Примечание: Oracle может требовать регистрацию для скачивания. При установке локального RPM пакета проверьте цифровую подпись и источник.
Чек-листы по ролям
Администратор:
- Проверить доступность репозиториев dnf.
- Установить java-*-devel пакеты для сборки нативных расширений.
- Обновить alternatives для всех бинарников Java.
Разработчик:
- Убедиться, что переменная JAVA_HOME указывает на ожидаемую JVM.
- Настроить сборку (Maven/Gradle) на целевую версию Java.
Инженер CI/CD:
- Закрепить JDK в образах контейнеров или артефактах.
- Добавить тест на корректную версию java -version в pipeline.
Команды-справочник
- Поиск пакетов: dnf search jdk
- Установка OpenJDK 11: dnf install java-11-openjdk-devel.x86_64
- Установка OpenJDK 8: dnf install java-1.8.0-openjdk-devel
- Локальная установка RPM: dnf localinstall
.rpm - Переключение: alternatives –config java
- Проверка: java -version
Таблица совместимости (кратко)
- OpenJDK 8 — совместимость с приложениями, разработанными под Java 8.
- OpenJDK 11 — LTS версия, рекомендуется для новых проектов, поддерживает модульность и современные улучшения.
- Oracle JDK 8 — совместим с Java 8, может требовать лицензию для коммерческого использования.
Частые ошибки и способы устранения
- Ошибка: «command not found» при java — убедитесь, что package java-*-openjdk установлен и alternatives настроен.
- Приложение использует старую версию JVM — проверьте PATH и JAVA_HOME, перезапустите сервисы.
- При установке Oracle RPM — проблема с зависимостями: используйте dnf localinstall для автоматического разрешения зависимостей.
Ментальные модели при выборе версии
- Совместимость: если приложение заявлено под Java 8 — выбирайте Java 8.
- Поддержка: для долгосрочных проектов выбирайте LTS (например, 11 на момент выхода).
- Безопасность: держите JVM в актуальном состоянии патчей безопасности.
Руководство по проверке приемлемости установки
Критерии приёмки
- Команда java -version возвращает ожидаемую версию.
- alternatives указывает на правильный путь к бинарнику.
- Службы, зависящие от Java, корректно стартуют после смены JVM.
- При использовании Oracle JDK соблюдена политика лицензирования организации.
Небольшая методика отката при проблемах
- Если после установки новая JVM ломает сервис — переключитесь на прежнюю через alternatives.
- Откатите пакет через dnf history rollback или удалите RPM и установите нужный пакет из репозитория.
- Перезапустите сервисы и проверьте логи /var/log/messages или журналы systemd.
Простой decision flowchart в Mermaid
flowchart TD
A[Нужна Java на CentOS 8?] --> B{Приложение требует версии}
B -->|Java 8| C[Установить OpenJDK 8]
B -->|Java 11 или выше| D[Установить OpenJDK 11]
B -->|Коммерческая лицензия| E[Скачать Oracle JDK 8 по RPM]
C --> F[Проверить java -version]
D --> F
E --> F
F --> G[Настроить alternatives и JAVA_HOME]
Короткий словарь терминов
- JVM — виртуальная машина Java, выполняет байт-код.
- JDK — комплект разработчика Java: JRE + компилятор и инструменты.
- JRE — среда выполнения Java.
- alternatives — механизм в RHEL/CentOS для управления символическими ссылками различных реализаций.
Вывод
Вы узнали, как установить OpenJDK 11 и OpenJDK 8 на CentOS 8, как переключать версии через alternatives и как установить Oracle JDK 8 из RPM. Следуйте чек-листам и критериям приёмки, чтобы убедиться, что среда готова к работе. При возникновении проблем сначала переключитесь обратно на предыдущую версию и изучите журналы.
Важно: выбирайте версию Java исходя из требований приложения и политики поддержки в вашей организации.
Похожие материалы

Как выбрать приложение для торговли индексами

Загрузочный Recovery‑диск для Mac — как создать

Сортировка файлов по расширению в Nautilus

Командная строка: диагностика и ускорение интернета

Отключить автозапуск OneDrive в Windows
