Home » Как установить Java через apt на Ubuntu 24 — Быстрое руководство
Как установить Java через apt на Ubuntu 24 — Быстрое руководство

Как установить Java через apt на Ubuntu 24 — Быстрое руководство

Джаву устанавливают везде и всегда — от production-серверов до домашних лабораторий. Если работаешь с Ubuntu 24, то каждый раз лезть в официальную документацию Oracle или копировать команды из сомнительных гайдов не лучшая идея. Лучше один раз разобраться, как правильно поставить Java через apt, и дальше делать это буквально в три команды.

Эта статья поможет тебе быстро развернуть Java на своём сервере, понять какие пакеты ставить в зависимости от задач, и избежать типичных граблей. Рассмотрим как JRE, так и JDK, покажем примеры для разных версий, и разберём что делать, если что-то пошло не так.

Что такое Java в контексте Ubuntu-репозиториев

В Ubuntu доступны несколько имплементаций Java. Основные варианты:

  • OpenJDK — open-source реализация от Oracle, стандартный выбор
  • Oracle JDK — проприетарная версия (через сторонние репозитории)
  • Eclipse Temurin — от Eclipse Foundation, популярная альтернатива

Для большинства серверных задач OpenJDK более чем достаточно. Он поставляется в виде двух основных пакетов:

  • JRE (Java Runtime Environment) — только для запуска Java-приложений
  • JDK (Java Development Kit) — для разработки, включает компилятор javac

В Ubuntu 24 по умолчанию доступны версии Java 8, 11, 17 и 21. Версия 17 — текущая LTS, рекомендуется для production.

Быстрая установка Java — три команды

Если нужно просто поставить Java и работать дальше:

sudo apt update
sudo apt install openjdk-17-jdk
java -version

Готово! У тебя установлена Java 17 с полным JDK. Но если хочешь разобраться в деталях и настроить всё правильно, читай дальше.

Пошаговое руководство по установке

Шаг 1: Обновляем список пакетов

sudo apt update

Шаг 2: Проверяем доступные версии Java

apt search openjdk-.*-jdk

Увидишь что-то вроде:

openjdk-8-jdk - OpenJDK Development Kit (JDK)
openjdk-11-jdk - OpenJDK Development Kit (JDK)
openjdk-17-jdk - OpenJDK Development Kit (JDK)
openjdk-21-jdk - OpenJDK Development Kit (JDK)

Шаг 3: Устанавливаем нужную версию

Для JDK (разработка и запуск):

sudo apt install openjdk-17-jdk

Для JRE (только запуск):

sudo apt install openjdk-17-jre

Шаг 4: Проверяем установку

java -version
javac -version  # только для JDK

Шаг 5: Настраиваем переменные окружения

echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64' >> ~/.bashrc
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> ~/.bashrc
source ~/.bashrc

Управление несколькими версиями Java

Часто нужно держать несколько версий Java одновременно. Ubuntu предоставляет для этого удобный механизм:

Установка нескольких версий:

sudo apt install openjdk-8-jdk openjdk-11-jdk openjdk-17-jdk openjdk-21-jdk

Переключение между версиями:

sudo update-alternatives --config java
sudo update-alternatives --config javac

Система покажет меню для выбора версии по умолчанию. Также можно задать альтернативы вручную:

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-17-openjdk-amd64/bin/javac 1

Таблица сравнения версий Java

Версия LTS Поддержка до Рекомендуемое использование
Java 8 Да 2030 Legacy-приложения
Java 11 Да 2026 Стабильные production-системы
Java 17 Да 2029 Новые проекты, современный стандарт
Java 21 Да 2031 Экспериментальные проекты

Типичные проблемы и их решения

Проблема 1: JAVA_HOME не найдена

Симптом: Error: JAVA_HOME is not defined correctly

Решение:

find /usr/lib/jvm -name "java-*-openjdk*" -type d
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64

Проблема 2: Конфликт версий после обновления

Симптом: Приложение не запускается после apt upgrade

Решение:

sudo update-alternatives --config java
# Выбираем нужную версию
sudo systemctl restart your-java-app

Проблема 3: Недостаточно памяти для JVM

Симптом: OutOfMemoryError при запуске

Решение:

export JAVA_OPTS="-Xmx2g -Xms1g"
java $JAVA_OPTS -jar your-app.jar

Автоматизация установки Java

Для развёртывания на множестве серверов удобно использовать скрипты. Вот пример для автоматической установки:

#!/bin/bash
# install-java.sh

set -e

JAVA_VERSION=${1:-17}
INSTALL_TYPE=${2:-jdk}

echo "Installing OpenJDK $JAVA_VERSION ($INSTALL_TYPE)"

# Обновляем репозитории
sudo apt update

# Устанавливаем Java
sudo apt install -y openjdk-$JAVA_VERSION-$INSTALL_TYPE

# Настраиваем JAVA_HOME
JAVA_HOME_PATH="/usr/lib/jvm/java-$JAVA_VERSION-openjdk-amd64"
echo "export JAVA_HOME=$JAVA_HOME_PATH" | sudo tee -a /etc/environment
echo "export PATH=\$PATH:\$JAVA_HOME/bin" | sudo tee -a /etc/environment

# Применяем изменения
source /etc/environment

# Проверяем установку
java -version

echo "Java $JAVA_VERSION installed successfully!"
echo "JAVA_HOME: $JAVA_HOME_PATH"

Использование:

chmod +x install-java.sh
./install-java.sh 17 jdk    # Java 17 JDK
./install-java.sh 11 jre    # Java 11 JRE

Интеграция с системными сервисами

Для production-серверов важно правильно настроить Java-приложения как systemd-сервисы:

# /etc/systemd/system/myapp.service
[Unit]
Description=My Java Application
After=network.target

[Service]
Type=simple
User=myapp
Group=myapp
WorkingDirectory=/opt/myapp
Environment=JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
Environment=JAVA_OPTS=-Xmx2g -Xms1g
ExecStart=/usr/lib/jvm/java-17-openjdk-amd64/bin/java $JAVA_OPTS -jar app.jar
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Активация сервиса:

sudo systemctl enable myapp
sudo systemctl start myapp
sudo systemctl status myapp

Оптимизация JVM для серверов

Для серверного использования стоит настроить JVM-параметры:

# Для веб-приложений
JAVA_OPTS="-Xmx4g -Xms2g -XX:+UseG1GC -XX:MaxGCPauseMillis=200"

# Для микросервисов
JAVA_OPTS="-Xmx1g -Xms512m -XX:+UseZGC -XX:+UnlockExperimentalVMOptions"

# Для batch-обработки
JAVA_OPTS="-Xmx8g -Xms4g -XX:+UseParallelGC -XX:ParallelGCThreads=4"

Мониторинг Java-приложений

Установка JDK даёт доступ к полезным утилитам мониторинга:

# Информация о процессах Java
jps -v

# Дамп heap'а
jmap -dump:format=b,file=heap.hprof [pid]

# Статистика GC
jstat -gc [pid] 1s

# Мониторинг в реальном времени
jconsole  # GUI
jvisualvm # Расширенный GUI

Альтернативные способы установки

Кроме apt, есть и другие способы установки Java:

  • SDKMAN — менеджер версий Java: curl -s "https://get.sdkman.io" | bash
  • Snap — изолированные пакеты: sudo snap install openjdk
  • Docker — контейнеризация: docker run openjdk:17-jdk

Но для серверов apt остаётся самым надёжным способом — интегрируется с системой обновлений, меньше проблем с правами доступа.

Интересные факты и нестандартные применения

Мало кто знает, но OpenJDK в Ubuntu поставляется с несколькими полезными утилитами:

  • jshell — интерактивная консоль Java (с Java 9+)
  • jlink — создание кастомных runtime-образов
  • jfr — профилирование с минимальными накладными расходами

Пример использования jshell для быстрых экспериментов:

jshell
|  Welcome to JShell -- Version 17.0.7
|  For an introduction type: /help intro

jshell> System.out.println("Hello from server!")
Hello from server!

jshell> /exit

А jlink позволяет создавать минималистичные runtime’ы:

jlink --module-path /usr/lib/jvm/java-17-openjdk-amd64/jmods \
      --add-modules java.base,java.net.http \
      --output custom-runtime \
      --compress=2

Безопасность и обновления

Ubuntu регулярно выпускает security-обновления для OpenJDK. Чтобы быть в курсе:

# Проверка обновлений только для Java
apt list --upgradable | grep openjdk

# Автоматическое обновление через unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades

Для production-серверов рекомендуется настроить автоматическое обновление security-пакетов, но основные обновления делать вручную после тестирования.

Производительность: OpenJDK vs Oracle JDK

По результатам бенчмарков, разница в производительности между OpenJDK и Oracle JDK минимальна (менее 5%). Для большинства задач OpenJDK из Ubuntu-репозиториев — отличный выбор.

Критерий OpenJDK Oracle JDK
Производительность Отличная Отличная
Лицензия GPL v2 Коммерческая
Поддержка Сообщество + Ubuntu Oracle
Обновления Через apt Вручную
Совместимость Стандартная Стандартная

Заключение и рекомендации

Установка Java через apt в Ubuntu 24 — это быстро, надёжно и правильно. Для production-серверов рекомендую:

  • Использовать OpenJDK 17 для новых проектов
  • Ставить JDK даже для runtime-серверов — пригодится для отладки
  • Настроить JAVA_HOME в /etc/environment для системных сервисов
  • Использовать update-alternatives для управления версиями
  • Настроить автоматическое обновление security-пакетов

Если тебе нужен надёжный сервер для Java-приложений, обрати внимание на VPS-хостинг с предустановленной Ubuntu 24. Для высоконагруженных приложений подойдёт выделенный сервер с возможностью точной настройки производительности.

Помни: правильно настроенная Java — это основа стабильной работы твоих приложений. Потрать время на изучение JVM-параметров и мониторинг — это окупится при первом же инциденте в production.


В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.

Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.

Leave a reply

Your email address will not be published. Required fields are marked