Установка Java на Debian 10 (Buster)
Что сделаем
- Установим Java 11 (рекомендуемый LTS — OpenJDK)
- Установим Java 12 (Oracle через PPA)
- Переключим дефолтную версию Java на системе
- Настроим переменную окружения JAVA_HOME
Ключевые понятия
- JDK — Java Development Kit, комплект для разработки (включает компилятор javac).
- JRE — Java Runtime Environment, окружение для запуска Java‑приложений (java команда).
Шаг 1 — Установка Java 11 LTS
Сначала обновим списки пакетов и обновим установленные пакеты:
sudo apt update
sudo apt upgradeДождитесь завершения обновления.
В репозитории Debian пакет по умолчанию называется default-jdk. Посмотреть информацию о пакете можно так:
sudo apt info default-jdkДалее установим пакет default-jdk, который подтянет default-jre и другие зависимости:
sudo apt install -y default-jdkПосле установки проверьте версии Java на системе:
java -version
javac -version
jar --versionПример вывода будет показывать Java 11 и путь установки в /usr/lib/jvm/. Чтобы просмотреть содержимое каталога, выполните:
ls -lah /usr/lib/jvm/
Шаг 2 — Установка Java 12
Если нужно установить Oracle Java 12, один из способов — использовать PPA от проекта linuxuprising (репозиторий для Ubuntu Bionic). На Debian это возможно, но требует осторожности: PPA предназначены для Ubuntu и могут содержать пакеты, несовместимые с Debian. Используйте этот метод, только если у вас есть резервные копии и вы понимаете риски.
- Добавьте ключ репозитория:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EA8CACC073C3DB2A- Создайте файл репозитория:
cd /etc/apt/sources.list.d/
vim java-12.listВставьте строки:
deb http://ppa.launchpad.net/linuxuprising/java/ubuntu bionic main
deb-src http://ppa.launchpad.net/linuxuprising/java/ubuntu bionic mainСохраните и закройте файл.
- Обновите индексы и установите пакет установщика Oracle Java 12:
sudo apt update
sudo apt install oracle-java12-installerВо время установки вы увидите диалог с лицензией Oracle — выберите OK и затем Yes, чтобы принять лицензионное соглашение.
Проверяем версии:
java -version
javac -version
jar --versionПапка установки тоже будет в /usr/lib/jvm/. Пример экрана установки:



Важно: использование PPA может вносить пакеты, рассчитанные на другую версию дистрибутива. Рассмотрите альтернативы (далее описаны).
Шаг 3 — Переключение дефолтной версии Java
Когда установлено несколько версий Java, Debian предоставляет утилиты для управления альтернативами. Увидеть доступные реализации можно так:
sudo update-java-alternatives -lВы увидите список с путями установки, например /usr/lib/jvm/java-1.11.0-openjdk-amd64 и /usr/lib/jvm/java-12-oracle.
Проверка текущих версий:
java -version
javac -version
jar --versionЧтобы переключить систему на OpenJDK 11, выполните (замените путь на ваш):
sudo update-java-alternatives -s /usr/lib/jvm/java-1.11.0-openjdk-amd64После выполнения снова проверьте версии. Сообщения об ошибках в процессе можно игнорировать, если версии успешно поменялись — обратитесь к разделу «Устранение неполадок», если есть проблемы.


Шаг 4 — Настройка переменной JAVA_HOME
Переменная JAVA_HOME нужна многим сборочным инструментам и приложениям для поиска установленной JDK.
Откройте файл конфигурации оболочки (пример для bash):
vim ~/.bashrcДобавьте строки (замените путь на ваш реальный путь к JDK):
JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
PATH=$PATH:$JAVA_HOME/binСохраните и выйдите из сессии, затем зайдите снова или выполните source ~/.bashrc.
Проверка:
echo $JAVA_HOME
echo $PATH
Альтернативные способы установки Java
- Установка конкретных пакетов OpenJDK напрямую: sudo apt install openjdk-11-jdk или openjdk-8-jdk.
- Использование SDKMAN (sdkman.io) — менеджер версий Java для разработчиков (подходит для пользовательских сессий).
- Ручная установка из tar.gz (Oracle или OpenJDK builds): распаковать в /opt/java и настроить update-alternatives вручную.
Плюс/минус альтернатив:
- apt (OpenJDK) — безопасно, поддерживается Debian, прост в обновлении.
- PPA/Oracle — даёт специфическую версию Oracle, но требует осторожности и может сломать зависимости.
- SDKMAN — идеален для разработчиков, не для серверов продакшн.
Когда этот подход не подходит
- Вы требуете сертифицированную сборку Oracle с поддержкой от поставщика — обратитесь к платным дистрибуциям.
- Нельзя использовать PPA в окружениях с жесткой политикой безопасности.
- На контейнерах лучше использовать лёгкие OpenJDK distroless образы.
Устранение неполадок
- Неверная версия после переключения: выполните sudo update-alternatives –config java и выберите нужный пункт.
- Команды не находятся: проверьте PATH и наличие файлов в $JAVA_HOME/bin.
- Пакет oracle-java12-installer не установился: проверьте вывод apt, возможно, недоступен PPA или отсутствуют зависимости.
Полезные команды для диагностики:
update-alternatives --list java
update-alternatives --config java
sudo update-java-alternatives -l
ls -lah /usr/lib/jvm/
which java
readlink -f $(which java)Критерии приёмки
- java -version и javac -version показывают нужную версию.
- Переменная JAVA_HOME указывает на каталог JDK.
- PATH содержит $JAVA_HOME/bin и команды java/javac доступны без полного пути.
- Для сервисов (systemd) переменная доступна в окружении сервиса или прописана в Unit файле.
Чек‑лист по ролям
Для системного администратора:
- Сделать бэкап конфигурации /etc/apt/sources.list.d/* перед добавлением PPA.
- Проверить совместимость PPA с Debian.
- Убедиться, что системные сервисы перезапущены после смены JAVA_HOME.
Для разработчика:
- Установить SDKMAN, если нужно часто переключать версии в пользовательской сессии.
- Убедиться, что сборочные системы (Maven/Gradle) используют нужную версию.
Мини‑методология для безопасного добавления PPA в Debian
- Создать бэкап текущих списков APT.
- Добавить ключ GPG и репозитория в отдельный файл в /etc/apt/sources.list.d/.
- Выполнить apt update и просмотреть изменения пакетов, не выполняя автоматического апгрейда.
- Установить пакет и проверить журналы apt на предмет конфликтов.
- Тестировать в staging перед production.
Модель принятия решения при выборе способа установки
flowchart TD
A[Нужна Java на сервере?] --> B{Требуется Oracle?}
B -- Да --> C[Рассмотреть коммерческую сборку или PPA с осторожностью]
B -- Нет --> D{Требуется LTS и поддержка?}
D -- Да --> E[Установить openjdk-11-jdk из репозитория]
D -- Нет --> F[Использовать SDKMAN для локальной разработки]
C --> G[Тестировать в staging и иметь откат]
E --> H[Поддерживать через apt]
F --> I[Версии для пользователя, не для systemd сервисов]Короткий глоссарий
- OpenJDK — открытая реализация Java.
- Oracle JDK — коммерческая/официальная сборка от Oracle.
- PPA — Personal Package Archive, репозиторий для Ubuntu.
Рекомендации по безопасности
- Не добавляйте PPA в production без аудита.
- Следите за обновлениями безопасности для Java и применяйте патчи.
Быстрая проверка после установки (тестовые кейсы)
- Выполнить java -version и ожидать нужную версию.
- Компилировать простую программу javac Hello.java и запускать java Hello.
- Проверить, что системный сервис (если использует Java) стартует корректно после смены JAVA_HOME.
Сводка
- Для Debian 10 рекомендуем использовать OpenJDK 11 из официального репозитория.
- Установка Oracle Java через PPA возможна, но рискованна и требует резервирования.
- Всегда настраивайте JAVA_HOME и PATH для корректной работы инструментов.
Важно: проверяйте совместимость и тестируйте в безопасном окружении перед деплоем в production.
Источники
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента