Java и JVM (виртуальная машина Java) требуются для многих видов программного обеспечения, включая Tomcat, Jetty, Glassfish, Cassandra и Jenkins.
Это руководство поможет вам научиться устанавливать различные версии Java Runtime Environment (JRE) и Java Developer Kit (JDK) с помощью apt
. Вы установите OpenJDK, а также официальные пакеты от Oracle. Затем вы выберете версию, которую предпочитаете использовать в своих проектах. После этого вы сможете использовать JDK для разработки программного обеспечения и Java Runtime для запуска программного обеспечения.
Установка 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 -version
Если установка Java не выполнялась, вы увидите следующие результаты:
Output 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
Вывод должен выглядеть следующим образом:
Output 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)
Для компиляции и запуска некоторых специфических программ на базе Java в дополнение к JRE вам может потребоваться комплект разработчика Java Development Kit (JDK). Для установки JDK выполните следующую команду, которая также выполняет установку JRE:
sudo apt install default-jdk
Проверьте установку JDK, проверив версию javac
, компилятора Java:
javac -version
Вывод должен выглядеть следующим образом:
Output javac 10.0.1
Теперь посмотрим, как указать конкретную версию OpenJDK для установки.
Установка конкретных версий OpenJDK
Хотя вы можете просто установить пакет OpenJDK по умолчанию, вы также можете установить и другие версии OpenJDK.
OpenJDK 8
Java 8 — текущая версия с долгосрочной поддержкой, которая все еще поддерживается широким спектром приложений, хотя ее публичная поддержка заканчивается в январе 2019 г. Для установки OpenJDK 8 нужно выполнить следующую команду:
sudo apt install openjdk-8-jdk
Для проверки установки используется команда
java -version
Вывод будет выглядеть следующим образом:
Output 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 этот пакет устанавливает Java 11.
Для установки OpenJDK 10/11 используется следующая команда:
sudo apt install openjdk-11-jdk
Чтобы установить только JRE, нужно использовать следующую команду:
sudo apt install openjdk-11-jre
Теперь посмотрим, как установить официальные версии JDK и JRE от Oracle.
Установка Oracle JDK
Если вы хотите установить официально распространяемую версию Oracle JDK, вам нужно добавить новое хранилище пакетов для версии, которую вы хотите использовать.
Чтобы установить Java 8 (последняя версия LTS), нужно вначале добавить для нее хранилище пакетов:
sudo add-apt-repository ppa:webupd8team/java
При добавлении хранилища выводится сообщение следующего вида:
output 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. Задать версию по умолчанию можно через командную строку с помощью команды update-alternatives
.
sudo update-alternatives --config java
Если вы установили все версии Java, перечисленные в этом обучающем модуле, результат будет выглядеть так:
Output 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
Выберите число, соответствующее версии Java, кототрая будет использоваться по умолчанию, или нажмите ENTER
для сохранения текущих настроек.
Это можно сделать и для других команд Java, например, для компилятора (javac
):
sudo update-alternatives --config javac
Также эту команду можно использовать для настройки других команд, в том числе keytool
, javadoc
, jarsigner
и т. д.
Настройка переменной среды JAVA_HOME
Многие программы, написанные на Java, используют переменную среды JAVA_HOME
для определения каталога установки Java.
Чтобы задать эту переменную среды, нужно предварительно определить место установки Java. Используйте команду update-alternatives
:
sudo update-alternatives --config java
Эта команда показывает каждую установку Java и путь установки:
Output 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 Pressto 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
в nano
или другом текстовом редакторе:
sudo nano /etc/environment
Добавьте в конце этого файла следующую строку и замените выделенный путь скопированным путем: /etc/environment
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64/bin/"
При изменении файла будет задан путь JAVA_HOME
для всех пользователей системы.
Сохраните файл и выйдите из редактора.
Снова загрузите файл, чтобы применить изменения к текущему сеансу:
source /etc/environment
Убедитесь, что переменная среды задана:
echo $JAVA_HOME
Вы увидите путь, который только что задали:
Output /usr/lib/jvm/java-11-openjdk-amd64/bin/
Другим пользователям для применения этого параметра нужно будет выполнить команду source /etc/environment
или выйти из системы и снова войти в нее.