- Home »

Как установить 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.
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.