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

Почему две реализации Java? Кратко
- OpenJDK — открытая реализация, которая включена по умолчанию в большинстве дистрибутивов. Подходит для большинства задач.
- Oracle Java — проприетарная реализация от Oracle (раньше — Sun). Иногда имеет дополнительные исправления и совместимость с проприетарными инструментами.
- Кодовая база во многом совпадает (обычно ~98–99%), но различия в пакетах и лицензировании могут влиять на выбор.
Кому что подходит:
- Если вам важна свобода и простая установка — OpenJDK.
- Если у конкретного приложения есть зависимость от Oracle-специфик — используйте Oracle Java.
Установка 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-пакет от 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 20000sudo alternatives --install /usr/bin/javaws javaws /usr/java/jre1.6.0_27/bin/javaws 20000sudo 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 20000sudo alternatives --install /usr/bin/javaws javaws /usr/java/jdk1.6.0_27/jre/bin/javaws 20000sudo alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so libjavaplugin.so /usr/java/jdk1.6.0_27/jre/lib/i386/libnpjp2.so 20000sudo alternatives --install /usr/bin/javac javac /usr/java/jdk1.6.0_27/bin/javac 20000sudo alternatives --install /usr/bin/jar jar /usr/java/jdk1.6.0_27/bin/jar 2000064-битный JDK
Для 64-битной системы полезны особые шаги: 64-битный JDK включает рабочий Java Web Start, а плагин и пути отличаются:
sudo alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_27/jre/bin/java 20000sudo alternatives --install /usr/lib64/mozilla/plugins/libjavaplugin.so libjavaplugin.so.x86_64 /usr/java/jdk1.6.0_27/jre/lib/amd64/libnpjp2.so 20000sudo alternatives --install /usr/bin/javac javac /usr/java/jdk1.6.0_27/bin/javac 20000sudo 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/javawssudo 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? Поделитесь опытом в комментариях — какие приложения заставили вас выбрать ту или иную реализацию?
Похожие материалы
Как подключить беспроводную мышь к Windows 11
Потеря пакетов в Dota 2 — как исправить
Поделиться календарём Google: люди и публичный доступ
Перенести фото с iPhone на Surface Pro
Как оплатить Peacock TV за пределами США