Tutorial

Установка Java с apt в Ubuntu 20.04

JavaUbuntu 20.04

Введение

Java и JVM (виртуальная машина Java) требуются для многих видов программного обеспечения, включая Tomcat, Jetty, Glassfish, Cassandra и Jenkins.

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

Предварительные требования

Для данного обучающего руководства вам потребуется следующее:

  • Сервер Ubuntu 20.04, настроенный в соответствии с указаниями обучающего руководства Начальная настройка сервера Ubuntu 20.04, а также пользователь без прав root с привилегиями sudo и брандмауэр.

Установка JRE/JDK по умолчанию

Самый простой вариант установки Java — использовать версию, входящую в пакет Ubuntu. По умолчанию в пакет Ubuntu 20.04 входит Open JDK 11 (версия JRE и JDK с открытым исходным кодом).

Для установки этой версии нужно вначале обновить указатель пакетов:

  • sudo apt update

Затем нужно проверить, выполнялась ли установка Java ранее:

  • java -version

Если установка Java не выполнялась, вы увидите следующие результаты:

Output
Command 'java' not found, but can be installed with: sudo apt install default-jre # version 2:1.11-72, or sudo apt install openjdk-11-jre-headless # version 11.0.7+10-3ubuntu1 sudo apt install openjdk-13-jre-headless # version 13.0.3+3-1ubuntu2 sudo apt install openjdk-14-jre-headless # version 14.0.1+7-1ubuntu1 sudo apt install openjdk-8-jre-headless # version 8u252-b09-1ubuntu1

Выполните следующую команду, чтобы установить по умолчанию среду Java Runtime Environment (JRE), которая установит JRE из OpenJDK 11:

  • sudo apt install default-jre

JRE позволит вам запускать практически любое программное обеспечение Java.

Проверьте установку с помощью следующей команды:

  • java -version

Вывод должен выглядеть следующим образом:

Output
openjdk version "11.0.7" 2020-04-14 OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1) OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)

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

  • sudo apt install default-jdk

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

  • javac -version

Вывод должен выглядеть так:

Output
javac 11.0.7

Теперь посмотрим, как установить официальные версии JDK и JRE от Oracle.

Установка Oracle JDK 11

Лицензионное соглашение Oracle для Java​​ не разрешает автоматическую установку через менеджеры пакетов. Для установки официальной версии Oracle JDK, которую предлагает Oracle, вам нужно создать учетную запись Oracle и вручную загрузить JDK, чтобы добавить новый репозиторий пакетов для той версии, которую вы собираетесь использовать. Затем вы можете использовать apt для ее установки с помощью скрипта установки от сторонних разработчиков.

Версия JDK от Oracle, которая вам потребуется, должна соответствовать версии скрипта установщика. Чтобы узнать, какая версия вам нужна, перейдите на страницу oracle-java11-installer.

Найдите пакет для Focal, как показано на следующем изображении:

Установочный пакет для Ubuntu 2.04

На этом изображении версия скрипта 11.0.7. В данном случае вам понадобится Oracle JDK 11.0.7. Вам не нужно ничего загружать с этой страницы, вы загрузите скрипт установки через apt.

Затем перейдите на страницу загрузок и найдите версию, которая вам нужна.

Oracle Java 11

Нажмите кнопку JDK Download, и вы увидите экран, отображающий доступные версии. Нажмите на пакет .tar.gz для Linux.

Загрузка Linux

Вы увидите экран, где вам будет предложено принять лицензионное соглашение Oracle. Примите лицензионное соглашение, установив флажок, и нажмите кнопку Download. Начнется загрузка. Возможно, вам потребуется выполнить вход в вашу учетную запись Oracle еще раз до начала загрузки.

После загрузки файла переместите его на ваш сервер. Загрузите файл на сервер на вашем локальном компьютере. В macOS, Linux или Windows, с помощью подсистемы Windows для Linux, используйте команду scp для перемещения файла в домашнюю директорию вашего пользователя sammy. Следующая команда предполагает, что вы сохранили файл Oracle JDK в папку Загрузки на вашем локальном компьютере:

  • scp Downloads/jdk-11.0.7_linux-x64_bin.tar.gz sammy@your_server_ip:~

После завершения загрузки файла вернитесь на ваш сервер и добавьте сторонний репозиторий, который поможет вам установить Java от Oracle.

Установите пакет software-properties-common, который добавит команду add-apt-repository в вашу систему:

  • sudo apt install software-properties-common

Затем импортируйте ключ подписи для верификации программного обеспечения, которое вы собираетесь установить:

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

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

Output
gpg: key EA8CACC073C3DB2A: public key "Launchpad PPA for Linux Uprising" imported gpg: Total number processed: 1 gpg: imported: 1

После этого используйте команду add-apt-repository, чтобы добавить репозиторий в список источников пакетов:

  • sudo add-apt-repository ppa:linuxuprising/java

Появится следующее сообщение:

Output
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, чтобы продолжить установку. Возможно, вы увидите сообщение об отсутствии действительных данных OpenPGP (no valid OpenPGP data found), но вы можете спокойно игнорировать его.

Обновите список пакетов, чтобы новое программное обеспечение стало доступным к установке:

  • sudo apt update

Установщик начнет искать Oracle JDK, который вы загрузили в /var/cache/oracle-jdk11-installer-local. Создайте этот каталог и переместите архив Oracle JDK туда:

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

После этого выполните установку пакета:

  • sudo apt install oracle-java11-installer-local

Установщик сначала попросит вас принять лицензионное соглашение Oracle. Примите соглашение. После этого установщик извлечет пакет Java и установит его.

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

Управление Java

На одном сервере может быть установлено несколько версий Java. Задать версию по умолчанию можно через командную строку с помощью команды update-alternatives.

  • sudo update-alternatives --config java

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

Output
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:

Выберите число, соответствующее версии 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 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:

В данном случае пути установки выглядят следующим образом:

  1. OpenJDK 11 находится в каталоге /usr/lib/jvm/java-11-openjdk-amd64/bin/java.
  2. Java Oracle располагается в каталоге /usr/lib/jvm/java-11-oracle/jre/bin/java.

Скопируйте путь каталога установки предпочитаемой версии. Откройте каталог /etc/environment в nano или другом текстовом редакторе:

  • sudo nano /etc/environment

В конце этого файла добавьте следующую строку, чтобы заменить выделенный путь на собственный скопированный путь, но не включайте часть пути bin/​​​:

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

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

Сохраните файл и выйдите из редактора.

Снова загрузите файл, чтобы применить изменения к текущему сеансу:

  • source /etc/environment

Убедитесь, что переменная среды задана:

  • echo $JAVA_HOME

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

Output
/usr/lib/jvm/java-11-openjdk-amd64

Другим пользователям для применения этого параметра нужно будет выполнить команду source /etc/environment или выйти из системы и снова войти в нее.

Заключение

В этом обучающем модуле вы установили разные версии Java и научились управлять ими. Теперь вы можете устанавливать программное обеспечение, работающее на платформе Java, в том числе Tomcat, Jetty, Glassfish, Cassandra или Jenkins.

Creative Commons License