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

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

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

Требования

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

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

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

Этот пакет установит версию OpenJDK 1.8, совместимую с Java 8, текущей версией Long Term Support, которая по-прежнему широко поддерживается, хотя ее поддержка заканчивается в январе 2019 года.

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

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 "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-1~deb9u1-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)

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

sudo apt install default-jdk

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

javac -version

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

javac 1.8.0_181

Установка Oracle JDK

Если вы хотите установить Oracle JDK, официальную версию от Oracle, вам нужно добавить новый репозиторий пакетов той версии, которую вы хотите использовать.

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

sudo apt install software-properties-common

Установка Oracle Java 8

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

sudo add-apt-repository ppa:webupd8team/java

После добавления репозитория вы увидите сообщение:

Oracle Java (JDK) Installer (automatically downloads and installs Oracle JDK8). There are no actual Java files in this PPA.
Important -> Why Oracle Java 7 And 6 Installers No Longer Work: http://www.webupd8.org/2017/06/why-oracle-java-7-and-6-installers-no.html
Update: Oracle Java 9 has reached end of life: http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html
The PPA supports Ubuntu 18.04, 17.10, 16.04, 14.04 and 12.04.
More info (and Ubuntu installation instructions):
- for Oracle Java 8: http://www.webupd8.org/2012/09/install-oracle-java-8-in-ubuntu-via-ppa.html
Debian installation instructions:
- Oracle Java 8: http://www.webupd8.org/2014/03/how-to-install-oracle-java-8-in-debian.html
For Oracle Java 10, see a different PPA: https://www.linuxuprising.com/2018/04/install-oracle-java-10-in-ubuntu-or.html
More info: https://launchpad.net/~webupd8team/+archive/ubuntu/java
Press [ENTER] to continue or ctrl-c to cancel adding it

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

gpg: keybox '/tmp/tmpgt9wdvth/pubring.gpg' created
gpg: /tmp/tmpgt9wdvth/trustdb.gpg: trustdb created
gpg: key C2518248EEA14886: public key "Launchpad VLC" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1
gpg: no valid OpenPGP data found.

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

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C2518248EEA14886

Обновите индекс пакетов:

sudo apt update

Установите Java 8:

sudo apt install oracle-java8-installer

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

Установка Oracle Java 10

Сначала добавьте репозиторий пакетов для Oracle Java 10.

sudo add-apt-repository ppa:linuxuprising/java
Oracle Java 10 installer
Java binaries are not hosted in this PPA due to licensing. The packages in this PPA download and install Oracle Java 10 (JDK 10), 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/
Issues or suggestions? Leave a comment here: https://www.linuxuprising.com/2018/04/install-oracle-java-10-in-ubuntu-or.html
More info: https://launchpad.net/~linuxuprising/+archive/ubuntu/java
Press [ENTER] to continue or ctrl-c to cancel adding it

Нажмите ENTER, чтобы продолжить. Как и с Java 8, вы увидите сообщение о невалидных ключах.

gpg: keybox '/tmp/tmpvuqsh9ui/pubring.gpg' created
gpg: /tmp/tmpvuqsh9ui/trustdb.gpg: trustdb created
gpg: key EA8CACC073C3DB2A: public key "Launchpad PPA for Linux Uprising" imported
gpg: Total number processed: 1
gpg:               imported: 1
gpg: no valid OpenPGP data found.

Импортируйте необходимые ключи.

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

Обновите индекс пакетов:

sudo apt update

Установите Java 10:

sudo apt install oracle-java10-installer

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

Управление Java

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

sudo update-alternatives --config java

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

There are 3 choices for the alternative java (providing /usr/bin/java).
Selection    Path                                               Priority   Status
-------------------------------------------------------------------------------------
0              /usr/lib/jvm/java-10-oracle/bin/java             1091       auto mode
* 1            /usr/lib/jvm/java-10-oracle/bin/java             1091       manual mode
2              /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081       manual mode
3              /usr/lib/jvm/java-8-oracle/jre/bin/java          1081       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-10-oracle/bin/java             1091      auto mode
* 1            /usr/lib/jvm/java-10-oracle/bin/java             1091      manual mode
2              /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode
3              /usr/lib/jvm/java-8-oracle/jre/bin/java          1081      manual mode

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

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

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

sudo nano /etc/environment

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

JAVA_HOME="/usr/lib/jvm/java-8-oracle/jre"

При изменении этого файла путь JAVA_HOME будет установлен для всех пользователей вашей системы. Сохраните и закройте файл. Чтобы обновить настройки, введите:

source /etc/environment

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

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

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

Заключение

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

Tags: , , , , , , , , ,