Установка Java с помощью apt в Ubuntu 18.04

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

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

Требования

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

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

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

Этот пакет установит OpenJDK 10 или 11.

  • До сентября 2018 года будет устанавливаться OpenJDK 10.
  • После сентября 2018 года будет устанавливаться OpenJDK 11.

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

sudo apt update

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

java -version

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

Command 'java' not found, but can be installed with:
apt install default-jre
apt install openjdk-11-jre-headless
apt install openjdk-8-jre-headless
apt install openjdk-9-jre-headless

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

sudo apt install default-jre

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

Запросите версию:

java -version

Вы увидите такой результат:

openjdk version "10.0.1" 2018-04-17
OpenJDK Runtime Environment (build 10.0.1+10-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 10.0.1+10-Ubuntu-3ubuntu1, mixed mode)

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

sudo apt install default-jdk

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

javac -version

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

javac 10.0.1

Установка версии OpenJDK

Вместо версии по умолчанию, вы можете использовать другие версии OpenJDK.

Установка OpenJDK 8

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

sudo apt install openjdk-8-jdk

Запросите версию:

java -version

Вы должны увидеть:

openjdk version "1.8.0_162"
OpenJDK Runtime Environment (build 1.8.0_162-8u162-b12-1-b12)
OpenJDK 64-Bit Server VM (build 25.162-b12, mixed mode)

Также можно установить только JRE:

sudo apt install openjdk-8-jre

Установка OpenJDK 10/11

Репозитории Ubuntu содержат пакет, который установит либо Java 10, либо 11. До сентября 2018 года этот пакет установит OpenJDK 10. После выпуска Java 11 этот пакет установит эту версию.

Чтобы установить OpenJDK 10/11, выполните следующую команду:

sudo apt install openjdk-11-jdk

Чтобы установить только JRE, введите:

sudo apt install openjdk-11-jre

Установка Oracle JDK

Установить Oracle JDK (официальную версию, распространяемую Oracle) немного сложнее. Для этого нужно добавить новый репозиторий пакетов.

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

sudo add-apt-repository ppa:webupd8team/java

Вы увидите сообщение:

Oracle Java (JDK) Installer (automatically downloads and installs Oracle JDK8). There are no actual Jav
a files in this PPA.
Important -> Why Oracle Java 7 And 6 Installers No Longer Work: http://www.webupd8.org/2017/06/why-oracl
e-java-7-and-6-installers-no.html
Update: Oracle Java 9 has reached end of life: http://www.oracle.com/technetwork/java/javase/downloads/j
dk9-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. Обновите список пакетов:

sudo apt update

Затем установите Java 8:

sudo apt install oracle-java8-installer

Ваша система загрузит JDK из Oracle и предложит принять лицензионное соглашение. Примите соглашение, после чего JDK будет установлен.

Теперь нужно выбрать версию Java по умолчанию.

Управление 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-11-openjdk-amd64/bin/java      1101      auto mode
1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1101      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

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

sudo update-alternatives --config javac

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

Переменная JAVA_HOME

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

sudo update-alternatives --config java

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

There are 3 choices for the alternative java (providing /usr/bin/java).
Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1101      auto mode
1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1101      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:

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

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

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

sudo nano /etc/environment

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

JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64/bin/java"

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

source /etc/environment

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

echo $JAVA_HOME

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

Заключение

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

Tags: , , , , ,