Установка OpenJDK и Oracle JDK на Ubuntu 22.04

Кому подойдёт эта инструкция
- Разработчикам, которым нужно локально или на сервере установить Java.
- Сисадминам, управляющим несколькими версиями JDK на одном хосте.
- CI-инженерам, настраивающим сборочные среды.
Важно: если вы разворачиваете критичные к безопасности приложения, проверьте лицензирование Oracle перед коммерческим использованием.
Требования
- Сервер или рабочая станция под управлением Ubuntu 22.04.
- Доступ с правами root или учетная запись с sudo.
OpenJDK или Oracle JDK: как выбрать
Коротко о разнице: OpenJDK — свободная реализация Java SE, поставляемая с Ubuntu; Oracle JDK — коммерческая реализация от Oracle с дополнительными компонентами и поддержкой. OpenJDK подходит для большинства задач. Oracle JDK выбирают, если требуется поддержка Oracle или специфичные проприетарные улучшения.
Когда выбирать Oracle JDK
- Требуется официальная поддержка от Oracle.
- У вас есть корпоративное соглашение на использование Oracle JDK.
Когда достаточно OpenJDK
- Открытый стек и отсутствие лицензирования в продакшене.
- Не нужны проприетарные расширения.
Установка OpenJDK на Ubuntu
Репозитории Ubuntu 22.04 содержат несколько версий OpenJDK. Вы можете установить нужную версию через APT.
Чтобы установить OpenJDK 8, выполните:
apt install openjdk-8-jdkЧтобы установить OpenJDK 11, выполните:
apt install openjdk-11-jdkЧтобы установить OpenJDK 18, выполните:
apt install openjdk-18-jdkПосле установки проверьте активную версию Java:
java -versionПример ожидаемого вывода:
openjdk version "18-ea" 2022-03-22
OpenJDK Runtime Environment (build 18-ea+36-Ubuntu-1)
OpenJDK 64-Bit Server VM (build 18-ea+36-Ubuntu-1, mixed mode, sharing)Примечание: версии и строки сборки зависят от релиза пакета в момент установки.
Установка Oracle JDK
Oracle предоставляет собственные сборки JDK. На момент исходного описания в статье Oracle Java 17 и 18 были доступны для загрузки. Для установки Oracle JDK выполните следующие шаги.
- Установите зависимости (если их ещё нет):
apt install -y libc6-x32 libc6-i386- Скачайте пакет .deb с сайта Oracle (пример для Java 18):
wget https://download.oracle.com/java/18/latest/jdk-18_linux-x64_bin.deb- Установите скачанный пакет:
apt install ./jdk-18_linux-x64_bin.deb- Зарегистрируйте бинарник java в системе alternatives, если хотите сделать Oracle JDK доступной как вариант:
update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-18/bin/java 100После этого можно переключаться между установленными версиями.
Переключение между версиями Java
Если на системе установлено несколько JDK, используйте update-alternatives для выбора версии по умолчанию.
update-alternatives --config javaСистема покажет список доступных провайдеров java и предложит выбрать:
There are 4 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-18-openjdk-amd64/bin/java 1811 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode
2 /usr/lib/jvm/java-18-openjdk-amd64/bin/java 1811 manual mode
3 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
4 /usr/lib/jvm/jdk-18/bin/java 100 manual mode
Press to keep the current choice[*], or type selection number: 4Введите номер выбранной записи и нажмите Enter. После переключения снова проверьте java -version.
Пример вывода для Oracle JDK:
java version "18.0.2" 2022-07-19
Java(TM) SE Runtime Environment (build 18.0.2+9-61)
Java HotSpot(TM) 64-Bit Server VM (build 18.0.2+9-61, mixed mode, sharing)Альтернативные способы установки
SDKMAN — удобный менеджер для установки и переключения версий Java в пользовательской среде. Хорош для разработчиков:
- Установка: https://sdkman.io/
- Пример: sdk install java 11.0.11-open
Ручная установка из tar.gz — скачиваете архив, распаковываете в /opt, настраиваете update-alternatives.
PPA-репозитории и сторонние сборки (например, AdoptOpenJDK / Temurin) — используются, если нужны специфические сборки.
Таблица совместимости версий и Ubuntu
| JDK версия | Подходит для Ubuntu 22.04 | Примечания |
|---|---|---|
| 8 | Да | Требуется для старых приложений, может не поддерживать новейшие фичи |
| 11 | Да | Длительное поддерживаемое (LTS) решение для многих проектов |
| 17 | Да | Современное LTS-релиз (рекомендуется для новых проектов) |
| 18 | Да | Небольшие промежуточные релизы, подходят для тестирования и новых возможностей |
Безопасность и рекомендации по эксплуатации
- Обновляйте JDK через пакетный менеджер, чтобы получать патчи безопасности.
- Для серверов отключайте ненужные службы и ограничивайте доступ к /usr/lib/jvm.
- При использовании Oracle JDK убедитесь в соответствии лицензионным условиям для продакшена.
Чек-листы по ролям
Системный администратор
- Убедиться в наличии резервной копии конфигурации перед установкой.
- Установить JDK через APT или .deb и зарегистрировать через update-alternatives.
- Настроить мониторинг JVM (GC метрики, память).
Разработчик
- Установить нужную версию локально (рекомендуется SDKMAN).
- Проверить сборку и тесты под целевой JDK.
- Зафиксировать версию в документации проекта.
CI-инженер
- Убедиться, что билд-агенты используют ожидаемую JDK-версию.
- Автоматизировать установку через конфигурацию образов (Dockerfile, Packer).
Типовые проблемы и решения
Проблема: java -version показывает не ту версию
- Убедитесь, что запущена команда update-alternatives –config java и выбран нужный путь.
- Проверьте переменные окружения JAVA_HOME и PATH.
Проблема: приложение не запускается после смены JDK
- Проверьте совместимость байткода (target/targetCompatibility) и используемые JVM-опции.
- Посмотрите логи приложения — часто причина в несовместимых флагах JVM.
Краткое руководство по миграции
- Тестируйте приложение на новой версии JDK в отдельной среде.
- Обновите сборочные инструменты и зависимости, если нужно.
- Накатите изменения на staging, прогоните интеграционные тесты.
- Переключите production в окно обслуживания и примените новую версию.
Сводка полезных команд
- Установка OpenJDK: apt install openjdk-11-jdk
- Установка Oracle JDK из .deb: apt install ./jdk-18_linux-x64_bin.deb
- Переключение версии: update-alternatives –config java
- Проверка версии: java -version
Однострочный глоссарий
- JDK — комплект для разработки Java (Java Development Kit).
- JRE — среда выполнения Java (Java Runtime Environment).
- JVM — виртуальная машина Java.
- SDKMAN — менеджер SDK для Unix-подобных систем.
Когда этот подход не сработает
- Если приложение зависит от проприетарных расширений Oracle и вы используете OpenJDK.
- Если корпоративная политика запрещает загрузку бинарников с внешних сайтов без проверки безопасности.
Короткое объявление для команды (100–200 слов)
Мы добавили официальную инструкцию по установке Java на Ubuntu 22.04. В ней описаны шаги для установки OpenJDK из репозиториев и установки Oracle JDK через пакет .deb, а также способы переключения между версиями через update-alternatives. Для разработчиков рекомендуется использовать SDKMAN для управления локальными версиями. Администраторам следует проверить лицензионные условия при использовании Oracle JDK в продакшене и настроить мониторинг JVM. Документ содержит чек-листы по ролям и таблицу совместимости, чтобы ускорить миграцию и уменьшить простои.
Вопросы и поддержка
Если остались вопросы или нужна помощь с конкретной конфигурацией (Docker, CI/CD, контейнеризация), опишите вашу среду и желаемую JDK-версию — я помогу с шагами.
Итого: используя стандартные пакеты Ubuntu, .deb от Oracle или менеджеры версий вроде SDKMAN, вы можете гибко управлять JDK на Ubuntu 22.04 и выбирать реализацию Java, подходящую именно вашему проекту.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента