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

Установка OpenJDK и Oracle Java на Linux

7 min read Linux Обновлено 06 Dec 2025
OpenJDK и Oracle Java на Linux
OpenJDK и Oracle Java на Linux

Важно: перед любыми изменениями сделайте резервную копию системных файлов и убедитесь, что вы понимаете команды sudo. В статьях используются примеры с версией 6u27; замените номера версии на те, которые вы скачали.

Иллюстрация установки Java на Linux

Почему две реализации Java? Кратко

  • OpenJDK — открытая реализация, которая включена по умолчанию в большинстве дистрибутивов. Подходит для большинства задач.
  • Oracle Java — проприетарная реализация от Oracle (раньше — Sun). Иногда имеет дополнительные исправления и совместимость с проприетарными инструментами.
  • Кодовая база во многом совпадает (обычно ~98–99%), но различия в пакетах и лицензировании могут влиять на выбор.

Кому что подходит:

  • Если вам важна свобода и простая установка — OpenJDK.
  • Если у конкретного приложения есть зависимость от Oracle-специфик — используйте Oracle Java.

Установка OpenJDK

Пакет OpenJDK в менеджере пакетов

Установка OpenJDK на большинстве систем очень проста. На Fedora/CentOS/RHEL можно установить необходимые пакеты так:

sudo yum install icedtea-web java-1.6.0-openjdk

Эта команда устанавливает среду выполнения Java (JRE) и браузерные плагины, необходимые для запуска апплетов/Web Start (если поддерживается браузером). На Ubuntu/Debian и Arch команды другие (apt / pacman), но идея та же: установить пакет openjdk и, при необходимости, icedtea или аналогичный плагин.

Совет: проверяйте версии в репозитории. OpenJDK 6/7/8 и новее могут называться по-разному — используйте manager пакетов для поиска точного имени.

Когда выбирать Oracle Java

Oracle Java полезна, если:

  • Приложение явно требует Oracle JRE/JDK.
  • Вам нужен официальный Java Web Start из комплекта Oracle.
  • Вы тестируете поведение, строго совпадающее с Oracle-реализацией.

Когда Oracle Java не нужна:

  • Большинство серверных и десктопных Java-приложений работают с OpenJDK.
  • Если лицензия Oracle не устраивает вашу организацию.

Подготовка: загрузка установочных файлов

Загрузка RPM для Fedora

Скачайте RPM-пакет от Oracle. Для 32-битных систем можно выбрать JRE или 32-битный JDK. Для 64-битных систем рекомендуется скачивать 64-битный JDK, потому что он включает рабочий Java Web Start, который в некоторых JRE-версиях отсутствует.

  • Выберите файл с пометкой RPM (Fedora/RHEL/CentOS используют RPM).
  • Сохраните файл в ~/Downloads для удобства.
  • В статье использованы номера версии Java 6u27 как пример; при загрузке современных версий используйте актуальные номера.

Установка скачанного RPM

Откройте терминал и сделайте файл исполняемым:

chmod +x /home//Downloads/

Затем запустите установщик:

/home//Downloads/

Замените на ваше имя пользователя, а на имя скачанного файла. Следуйте мастеру установки до завершения.

Конфигурация системных ссылок (alternatives)

После установки Oracle Java часть работы необходимо выполнить вручную: создать альтернативы через систему alternatives и установить плагины для браузера. Ниже представлены команды для разных вариантов установки. Обратите внимание: пути включают имя каталога с версией (например, jre1.6.0_27 или jdk1.6.0_27). Подставляйте реальную версию, которую вы установили.

32-битный JRE

Выполните команды (как root или через sudo):

sudo alternatives --install /usr/bin/java java /usr/java/jre1.6.0_27/bin/java 20000
sudo alternatives --install /usr/bin/javaws javaws /usr/java/jre1.6.0_27/bin/javaws 20000
sudo alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so libjavaplugin.so /usr/java/jre1.6.0_27/lib/i386/libnpjp2.so 20000

Эти команды создают альтернативы для java, javaws и плагина браузера.

32-битный JDK

Если вы установили JDK (включает javac и jar), добавьте дополнительные ссылки:

sudo alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_27/jre/bin/java 20000
sudo alternatives --install /usr/bin/javaws javaws /usr/java/jdk1.6.0_27/jre/bin/javaws 20000
sudo alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so libjavaplugin.so /usr/java/jdk1.6.0_27/jre/lib/i386/libnpjp2.so 20000
sudo alternatives --install /usr/bin/javac javac /usr/java/jdk1.6.0_27/bin/javac 20000
sudo alternatives --install /usr/bin/jar jar /usr/java/jdk1.6.0_27/bin/jar 20000

64-битный JDK

Для 64-битной системы полезны особые шаги: 64-битный JDK включает рабочий Java Web Start, а плагин и пути отличаются:

sudo alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_27/jre/bin/java 20000
sudo alternatives --install /usr/lib64/mozilla/plugins/libjavaplugin.so libjavaplugin.so.x86_64 /usr/java/jdk1.6.0_27/jre/lib/amd64/libnpjp2.so 20000
sudo alternatives --install /usr/bin/javac javac /usr/java/jdk1.6.0_27/bin/javac 20000
sudo alternatives --install /usr/bin/jar jar /usr/java/jdk1.6.0_27/bin/jar 20000

Для javaws создаём символьные ссылки отдельно, так как стандартный alternatives для javaws не всегда работает в 64-битной среде:

sudo ln -s /usr/java/jdk1.6.0_27/jre/javaws/javaws /etc/alternatives/javaws
sudo ln -s /etc/alternatives/javaws /usr/bin/javaws

Важно: команды выше используют приоритет 20000. Это высокое значение, чтобы сделать Oracle Java предпочтительной альтернативой. Если вы хотите переключаться между реализациями, используйте:

sudo alternatives --config java

и выберите нужный вариант в интерактивном меню.

Последние шаги: переменные окружения

Редактирование профиля пользователя

Откройте файл профиля пользователя и добавьте JAVA_HOME, чтобы инструменты и сборщики (Maven, Gradle и т. п.) могли найти JDK/JRE.

Если установлен JDK, добавьте в ~/.bash_profile или ~/.bashrc:

## export JAVA_HOME JDK
##export JAVA_HOME="/usr/java/jdk1.6.0_27"

Если установлен JRE, добавьте:

## export JAVA_HOME JRE
##export JAVA_HOME="/usr/java/jre1.6.0_27"

После правки выполните:

source ~/.bash_profile

или перезапустите сессию, чтобы переменная применилась.

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

Проверьте, какая java активна:

java -version

Проверьте javac (если установлен JDK):

javac -version

Проверьте javaws, если необходим Web Start:

javaws -version

Для браузерного плагина откройте Firefox и введите about:plugins (или используйте меню надстроек), чтобы убедиться, что плагин libnpjp2.so распознаётся.

Частые проблемы и решения

  • Плагин не загружается в браузере: убедитесь, что плагин находится в каталоге плагинов браузера или сделайте символьную ссылку на libnpjp2.so в папке плагинов. Для 64-битных систем путь обычно /usr/lib64/mozilla/plugins.
  • Java Web Start не запускается: на 64-битных системах используйте JDK, не JRE, или создайте явную ссылку на исполняемый javaws, как показано выше.
  • Конфликт версий: проверьте alternatives и при необходимости выполните sudo alternatives –config java, sudo alternatives –config javac.
  • SELinux блокирует плагин: проверьте предупреждения audit.log и настройте контексты SELinux при необходимости.

Совет по отладке: команда ldd /usr/java/jdk1.6.0_27/jre/lib/amd64/libnpjp2.so покажет, какие системные библиотеки требуются плагину и какие отсутствуют.

Когда установка Oracle Java не решает проблему

  • Приложение по-прежнему падает или работает некорректно: проблема может быть в самой программе, а не в JVM. Проверьте логи приложения и трассировки (stack traces).
  • Если требуется строгое соответствие спецификации Java SE последней версии — используйте современную версию OpenJDK/Oracle Java и проверьте совместимость API.

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

  • Использовать пакетные репозитории сторонних поставщиков (например, репозитории, которые автоматизируют установку Oracle Java) — ускоряет процесс, но требует доверия к репозиторию.
  • Контейнеризация: запускать Java-приложение внутри Docker-контейнера с нужной версией JVM — изолирует окружение и упрощает воспроизводимость.
  • Использовать SDKMAN! или jenv для управления несколькими версиями Java на одной машине (полезно для разработчиков).

Ментальные модели и правила выбора

  • Если приложение критично к среде, тестируйте на той же JVM, что и продакшен.
  • Для рабочих столов и большинства серверов OpenJDK — первый выбор.
  • Oracle Java — запасной вариант для специфичных случаев совместимости.

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

  • Сохранить скачанный RPM в ~/Downloads.
  • Сделать исполняемым и запустить установщик.
  • Настроить alternatives для java, javac, jar, javaws и плагина.
  • Добавить JAVA_HOME в профиль пользователя/систему.
  • Протестировать java -version и запуск целевых приложений.
  • При необходимости настроить SELinux/права доступа.

Контрольный список для разработчика

  • Проверить, какая JVM используется в CI и локально.
  • Указать требуемую версию Java в документации проекта.
  • Настроить инструменты сборки на использование переменной JAVA_HOME.

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

  • OpenJDK — открытая реализация, обычно устанавливается из репозиториев.
  • Oracle Java — проприетарная, иногда нужна для совместимости.
  • Рекомендуемая версия в статье — Java 6u27 (пример).
  • Для 64-битных систем лучше ставить JDK, если нужен javaws.

Совместимость по дистрибутивам

  • Ubuntu/Debian: простая установка OpenJDK через apt; Oracle Java можно установить вручную или через сторонние PPA/скрипты.
  • Arch Linux: у Arch есть пакеты в AUR для Oracle Java и простые пакеты для OpenJDK.
  • Fedora/RHEL/CentOS: OpenJDK доступен в официальных репозиториях; для Oracle Java скачивайте RPM и настраивайте alternatives вручную.

Безопасность и лицензирование

  • OpenJDK распространяется под открытыми лицензиями и обычно безопасна для использования в проектах с открытым исходным кодом.
  • Oracle Java может иметь ограничения лицензирования; проверьте текущие условия Oracle, особенно для коммерческого использования.

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

Java успешно установлена и настроена. OpenJDK покрывает большинство случаев. Oracle Java нужен редко, но его установка на Fedora/Red Hat требует дополнительных шагов (особенно для 64-битных систем и javaws). Если нужно, используйте alternatives для переключения между реализациями.

Если вы хотите, могу подготовить краткую пошаговую инструкцию под ваш дистрибутив (только укажите Fedora, Ubuntu или Arch и 32/64 бита).

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

  • JRE: среда выполнения Java, нужна для запуска приложений.
  • JDK: комплект разработчика, включает компилятор javac и дополнительные утилиты.
  • alternatives: системный механизм управления символьными ссылками для нескольких версий одной программы.
  • javaws: Java Web Start — инструмент для запуска приложений из сети.

Вопрос читателям

Что вы предпочитаете использовать: OpenJDK или Oracle Java? Поделитесь опытом в комментариях — какие приложения заставили вас выбрать ту или иную реализацию?

Успешная установка Java на Linux

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

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

Как подключить беспроводную мышь к Windows 11
Подключение

Как подключить беспроводную мышь к Windows 11

Потеря пакетов в Dota 2 — как исправить
Игры

Потеря пакетов в Dota 2 — как исправить

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

Поделиться календарём Google: люди и публичный доступ

Перенести фото с iPhone на Surface Pro
Руководство

Перенести фото с iPhone на Surface Pro

Как оплатить Peacock TV за пределами США
Стриминг

Как оплатить Peacock TV за пределами США

Отключение напоминаний об окончании поддержки Windows 7
Операционные системы

Отключение напоминаний об окончании поддержки Windows 7