Установка Java в системе Ubuntu - полезные советы для новичков
Java сегодня - один из самых популярных языков программирования в мире. Давайте разберемся, как правильно установить его в операционной системе Ubuntu, чтобы начать создавать свои приложения.
Обзор Java и его версий
Java был разработан компанией Sun Microsystems в 1990-х годах. Цель создания языка - обеспечить кроссплатформенность программ, чтобы код, написанный на Java, можно было запускать на разных операционных системах без изменений.
Основные особенности Java:
- Простой синтаксис, похожий на Си и C++
- Автоматическое управление памятью (сборка мусора)
- Многопоточность
- Большое количество библиотек и фреймворков
Для запуска программ на Java нужна виртуальная Java-машина (JVM). Она устанавливается на компьютер пользователя и выполняет байт-код Java, скомпилированный из исходного кода.
Рассмотрим базовые компоненты Java:
- JRE (Java Runtime Environment) - среда выполнения, включает JVM и библиотеки, нужна для запуска готовых Java-программ
- JDK (Java Development Kit) - комплект разработки, включает JRE и инструменты для написания кода на Java
- JVM (Java Virtual Machine) - виртуальная машина, которая выполняет байт-код Java
Наиболее популярны две версии Java - 8 и 11. Java 8 вышла в 2014 году, в ней появились lambda-выражения и потоки. Это самая распространенная на сегодня версия. Java 11 - первая LTS (long-term support) версия после Java 8, будет поддерживаться до 2026 года.
Существует две разновидности Java - открытая реализация OpenJDK и проприетарная версия Oracle JDK. Первая распространяется под свободной лицензией, вторая - с закрытыми компонентами от Oracle.
Подготовка к установке в Ubuntu
Перед установкой Java нужно определиться с версией и типом дистрибутива. Для разработки приложений потребуется JDK, для запуска готовых программ достаточно JRE. Рекомендуется ставить LTS-версии Java, например 8 или 11.
Проверим, нет ли уже установленной Java командой:
java -version
Если Java не найдена, то увидим сообщение об ошибке. Также обновим репозитории Ubuntu:
sudo apt update
Это позволит загрузить последние версии пакетов. Теперь можно приступать к установке.
Установка OpenJDK через apt
Для установки OpenJDK в Ubuntu достаточно одной команды:
sudo apt install default-jre
Это поставит версию Java из репозитория Ubuntu. Проверить, что установка прошла успешно:
java -version
Должна отобразиться примерно такая информация:
openjdk 11.0.17 2022-10-18 OpenJDK Runtime Environment (build 11.0.17+8-post-Ubuntu-0ubuntu118.04) OpenJDK 64-Bit Server VM (build 11.0.17+8-post-Ubuntu-0ubuntu118.04, mixed mode, sharing)
Чтобы задать путь к Java для приложений, нужно прописать переменные среды. Добавим в /etc/environment:
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
Путь может отличаться в зависимости от версии Java. Применим изменения командой:
source /etc/environment
Теперь Java готова к использованию в Ubuntu! Рассмотрим установку Oracle Java.
Установка Oracle Java вручную
Для установки Oracle Java нужно выполнить несколько шагов, подробно описанных в отдельных руководствах. Вкратце процесс такой:
- Скачать архив с официального сайта java.com
- Распаковать архив в директорию /usr/lib/jvm
- Добавить репозиторий для конкретной версии Java
- Выполнить команду apt install для установки
- Принять лицензионное соглашение во время установки
После установки может понадобиться дополнительная настройка переменных среды, если Java не определяется.
Выбор версии Java по умолчанию
Если в Ubuntu установлено несколько версий Java, нужно выбрать, какая будет использоваться по умолчанию. Это делается командой update-alternatives. Выбирается номер нужной версии Java. Аналогично настраиваются другие компоненты - javac, jar и т.д.
Для системных переменных, таких как JAVA_HOME, тоже можно задать конкретную версию Java, если требуется.
Таким образом в Ubuntu можно установить несколько версий Java и выбрать нужную для выполнения кода. Это помогает решить проблемы совместимости приложений.
Установка нескольких версий Java
В Ubuntu можно установить и использовать одновременно несколько версий Java от Oracle и OpenJDK. Это бывает нужно, если проекты требуют разных версий для корректной работы.
Например, можно поставить Java 8, Java 11 и Java 17. Каждая версия будет устанавливаться в отдельный каталог в /usr/lib/jvm. Далее с помощью update-alternatives выбирается версия по умолчанию.
При запуске конкретного проекта или приложения требуемая версия Java может задаваться явно через переменную JAVA_HOME.
Удаление ненужных версий Java
Со временем на Ubuntu может накопиться много разных версий Java, часть из которых перестает использоваться.
Чтобы удалить ненужную версию, нужно сначала убедиться, что она не используется по умолчанию и не требуется каким-либо приложением. Проверить это можно командами:
update-alternatives --config java update-alternatives --config javac
Если версия не выбрана, ее можно удалить. Для OpenJDK достаточно:
sudo apt purge openjdk-VERSION
Где VERSION - номер удаляемой версии. Для удаления Oracle JDK нужно удалить соответствующий пакет и репозиторий.
Выбор версии Java для приложения
Чтобы задать определенную версию Java для конкретного приложения, можно использовать переменную JAVA_HOME.
Например, чтобы для Tomcat использовалась Java 11, а для Jenkins - Java 8, нужно указать в запуске:
JAVA_HOME=/путь/до/java11 ./startup.sh # для запуска Tomcat JAVA_HOME=/путь/до/java8 ./jenkins.sh # для запуска Jenkins
Можно также настроить JAVA_HOME отдельно для каждого пользователя или глобально в /etc/environment.
Оптимизация производительности Java
Чтобы Java работала быстрее, рекомендуется:
- Выделить больше памяти под JVM с помощью опций -Xmx и -Xms
- Включить сборщик мусора G1GC для более эффективной работы
- Отключить автообновление с помощью флага -disablesystematics
- Запускать Java-приложения отдельно от системных процессов
Подбор оптимальных параметров зависит от конкретного приложения и сценария использования.
Решение проблем совместимости приложений
Причины проблем совместимости Java-приложений:
- Использование старой версии Java, в которой отсутствует нужный функционал
- Наличие несовместимых библиотек и фреймворков
- Ошибки в коде приложения
- Некорректные настройки JVM
Для решения нужно:
- Обновить Java до актуальной версии
- Установить требуемые библиотеки
- Проверить и отладить код приложения
- Подобрать оптимальные опции для JVM
Как видно, возможности настройки и использования Java в Ubuntu достаточно обширны. Главное - четко понимать требования проектов и гибко это реализовывать.