Установка Java с помощью apt в Debian 10

Java и JVM (Java virtual machine) – очень широко распространённые и востребованные программы (к примеру, они необходимы для работы TomcatJettyGlassfishCassandra и Jenkins).

В данном мануале вы научитесь устанавливать различные версии Java Runtime Environment (JRE) и Java Developer Kit (JDK) с помощью пакетного менеджера apt.

Вы установите OpenJDK 11, а также официальные пакеты Java 11 от Oracle. Также вы научитесь выбирать версию Java по умолчанию. После этого вы сможете использовать JDK для разработки или Java Runtime для запуска программного обеспечения.

Требования

Для работы вам нужен сервер Debian 10, настроенный согласно этому мануалу.

Установка стандартной версии JRE/JDK

Проще всего установить стандартную версию Java, которая поставляется вместе с Debian. По умолчанию вместе с Debian 10 идет Open JDK 11, открытая версия JRE и JDK, совместимая с Java 11.

Java 11 является текущей версией Long Term Support.

Чтобы установить версию OpenJDK, сначала обновите индекс пакетов:

sudo apt update

А затем запросите версию Java (чтобы проверить, установлена ли Java в данной системе):

java -version

Если на вашем сервере Java не установлена, вы увидите такой вывод:

-bash: java: command not found

Выполните следующую команду, чтобы установить OpenJDK:

sudo apt install default-jre

Данная команда установит Java Runtime Environment (JRE), что позволит вам запускать почти все программы Java.

Запросите версию установленной программы:

java -version

Вы увидите такой вывод:

openjdk version "11.0.4" 2019-07-16
OpenJDK Runtime Environment (build 11.0.4+11-post-Debian-1deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.4+11-post-Debian-1deb10u1, mixed mode, sharing)

Кроме JRE вам может понадобиться Java Development Kit (JDK), чтобы скомпилировать и запустить определенное программное обеспечение на базе Java. Чтобы установить JDK, выполните следующую команду:

sudo apt install default-jdk

Убедитесь, что версия JDK установлена, проверив версию javac, компилятора Java:

javac -version

Вы увидите следующий результат:

javac 11.0.4

Установка Oracle JDK

Если вам нужно установить Oracle JDK, официальную версию от Oracle, сначала установите инсталлятор из стороннего репозитория.

Давайте загрузим Java из репозитория Oracle.

Загрузка пакета Java SE от Oracle

Из-за недавних изменений в том, как Oracle обрабатывает лицензирование Java, вам сначала нужно создать учетную запись Oracle и загрузить программное обеспечение непосредственно с этого веб-сайта. Только после этого вы сможете продолжить установку.

Если у вас еще нет учетной записи Oracle, создайте ее на этой странице.

После этого перейдите на страницу загрузки Oracle Java SE.

Теперь нужно убедиться, что мы загружаем правильную версию Java – ее номер должен соответствовать тому, что ожидает получить инсталлятор. Чтобы проверить, какая версия нужна инсталлятору, откройте список пакетов в его репозитории.

Мы загрузим пакет из этого репозитория на следующем этапе, а пока нужно найти файлы oracle-java11-installer-local…

В этом случае инсталлятор ожидает версию 11.0.4. Все числа, которые идут после дефиса в номере версии пакета, можно смело игнорировать.

Теперь, когда мы знаем правильный номер версии, найдите необходимую версию на ,  странице загрузки Java.

Нажмите кнопку загрузки. После этого нужно принять лицензионное соглашение, для этого кликните Accept License Agreement. Затем выберите пакет .tar.gz для Linux, и загрузка начнется. Возможно, вам придется войти в свою учетную запись Oracle еще раз.

После окончания загрузки нужно загрузить выбранный файл на сервер. Для этого мы будем использовать команду scp, но вы можете использовать любое удобное программное обеспечение для передачи файлов.

На локальном компьютере используйте инструмент scp для загрузки файла на ваш сервер. Согласно следующей команде, ваш файл находится в каталог Downloads в домашней папке пользователя и будет загружен в домашний каталог пользователя 8host на сервере. Если в вашей ситуации пути отличаются, укажите свои пути:

scp ~/Downloads/jdk-11.0.4_linux-x64_bin.tar.gz  8host@your_server_ip:~

Теперь у вас на сервере есть правильный пакет программного обеспечения Java. Можно добавить репозиторий, в котором находится нужный нам инсталлятор.

Добавление apt-репозитория инсталлятора

Сначала установите пакет software-properties-common, который добавляет команду apt-get-repository – она нужна для добавления в систему дополнительных репозиториев.

sudo apt install software-properties-common

После этого нужно импортировать ключ подписи, чтобы проверить программу, которую мы собираемся установить:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EA8CACC073C3DB2A

С помощью команды add-apt-repository добавьте нужный репозиторий в список источников:

sudo add-apt-repository ppa:linuxuprising/java

После этого вы увидите сообщение:

Oracle Java 11 (LTS) and 12 installer for Ubuntu, Linux Mint and Debian.
Java binaries are not hosted in this PPA due to licensing. The packages in this PPA download and install Oracle Java 11, so a working Internet connection is required.
The packages in this PPA are based on the WebUpd8 Oracle Java PPA packages: https://launchpad.net/~webupd8team/+archive/ubuntu/java
Created for users of https://www.linuxuprising.com/
Installation instructions (with some tips), feedback, suggestions, bug reports etc.:
. . .
Press [ENTER] to continue or ctrl-c to cancel adding it

Нажмите ENTER, чтобы продолжить установку. Затем система попробует импортировать ключи GPG, но не сможет найти валидные.

no valid OpenPGP data found

Это предупреждение можно проигнорировать.

Чтобы обновить список исходников и сделать новое ПО доступным для установки, введите:

sudo apt update

Установка загруженной версии Java

Сначала нужно создать отдельный каталог, который инсталлятор использует для поиска пакета Java, а затем нужно скопировать туда файл .tar.gz.

sudo mkdir -p /var/cache/oracle-jdk11-installer-local/
sudo cp ~/jdk-11.0.4_linux-x64_bin.tar.gz /var/cache/oracle-jdk11-installer-local/

Когда процесс завершится, установите Java 11 от Oracle, это пакет oracle-java11-installer-local:

sudo apt install oracle-java11-installer-local

Сначала инсталлятор предложит вам принять лицензию. После этого он извлечет и установит Java.

Управление Java

На одном сервере может одновременно находиться несколько экземпляров Java. Вы можете выбрать версию Java, которая будет использоваться системой по умолчанию. Для этого существует команда update-alternatives.

sudo update-alternatives --config java

Команда вернёт примерно следующий вывод (в данном случае показан вывод команды после установки всех вышеперечисленных версий Java):

There are 2 choices for the alternative java (providing /usr/bin/java).
Selection    Path                                         Priority   Status
------------------------------------------------------------
0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java   1111      auto mode
1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java   1111      manual mode
* 2            /usr/lib/jvm/java-11-oracle/bin/java          1091      manual mode
Press <enter> to keep the current choice[*], or type selection number:

Теперь выберите номер версии, которая будет использоваться по умолчанию, и нажмите Enter. Таким же образом можно настроить и другие команды Java, например, компилятор (javac).

sudo update-alternatives --config javac

Также эта команда работает для keytool, javadoc, jarsigner и т.п.

Переменная JAVA_HOME

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

sudo update-alternatives --config java

Команда покажет все установки Java и их пути:

Selection    Path                                         Priority   Status
------------------------------------------------------------
0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java   1111      auto mode
1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java   1111      manual mode
* 2            /usr/lib/jvm/java-11-oracle/bin/

В данном случае у установок такие пути:

  • Oracle Java 11: /usr/lib/jvm/java-11-oracle/bin/java.
  • OpenJDK 11: /usr/lib/jvm/java-11-openjdk-amd64/bin/java.

Скопируйте путь необходимой вам версии и откройте /etc/environment в текстовом редакторе:

sudo nano /etc/environment

Добавьте следующую строку в конец этого файла (замените условный путь к программе только что скопированным путём):

JAVA_HOME="/usr/lib/jvm/java-11-oracle/"

При изменении файла путь JAVA_HOME будет установлен для всех пользователей данной системы.

Сохраните и закройте файл. Чтобы обновить настройки, введите:

source /etc/environment

Убедитесь, что переменная среды установлена верно. Для этого введите:

echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle/jre

Команда должна вернуть путь к версии, который вы только что установили.

Заключение

Теперь вы знаете, как установить несколько версий Java и выбрать версию по умолчанию. Сейчас вы можете установить  несколько программ, основанных на Java, например, Tomcat, Jetty, Glassfish, Cassandra или Jenkins.

Tags: , , , , ,