Как установить Java на CentOS, Rocky Linux, RHEL и Fedora

Введение

Этот учебник покажет вам, как установить Java на текущих версиях дистрибутивов Linux, основанных на RPM: Red Hat Enterprise Linux, CentOS, Fedora и Rocky Linux. Java – популярный язык программирования и программная платформа, которая позволяет запускать множество серверных приложений.

В этом учебнике рассматривается установка последней версии Java по умолчанию, а также выбор и установка более старых версий, а также переключение между несколькими версиями в вашей среде при необходимости.

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

Прежде чем начать выполнение этого руководства, у вас должен быть обычный пользователь без прав root с настроенными привилегиями sudo на вашем сервере – это пользователь, под которым вы должны войти на сервер. Вы можете узнать, как настроить учетную запись обычного пользователя, следуя инструкциям в нашем руководстве по начальной настройке сервера для Rocky Linux 8.

Шаг 1 – Установка OpenJDK

Есть три различных издания платформы Java: Standard Edition (SE), Enterprise Edition (EE) и Micro Edition (ME). Этот учебник сосредоточен на Java SE (Java Platform, Standard Edition). Почти все программное обеспечение на языке Java с открытым исходным кодом разработано для запуска в Java SE.

Существуют два различных пакета Java SE, которые можно установить: Java Runtime Environment (JRE) и Java Development Kit (JDK). JRE – это реализация Java Virtual Machine (JVM), которая позволяет запускать скомпилированные приложения и апплеты на Java. JDK включает в себя JRE, а также другое программное обеспечение, необходимое для написания, разработки и компиляции приложений и апплетов на Java.

Также существуют две различные реализации Java: OpenJDK и Oracle Java. Обе реализации в основном основаны на одном и том же коде, но OpenJDK, референсная реализация Java, полностью открытая, в то время как в Oracle Java содержится некоторый собственный код. Большинство приложений на Java будут работать нормально с любой из них, но вы должны использовать ту реализацию, которую требует ваше программное обеспечение.

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

Этот раздел покажет вам, как установить предварительно собранные пакеты OpenJDK JRE и JDK с помощью менеджера пакетов yum. yum является менеджером пакетов по умолчанию для дистрибутивов, использующих пакеты RPM.

Чтобы установить OpenJDK с помощью yum, вы можете выполнить sudo yum install java:

  1. sudo yum install java

По умолчанию попытка установки java без указания версии приведет к установке наиболее распространенной стабильной версии OpenJDK JRE. Как видно из этого вывода, на момент написания это java-1.8.0-openjdk:

Output
Last metadata expiration check: 0:02:38 ago on Tue 22 Feb 2022 04:57:59 PM UTC. Dependencies resolved. ======================================================================================== Package Arch Version Repo Size ======================================================================================== Installing: java-1.8.0-openjdk x86_64 1:1.8.0.322.b06-2.el8_5 appstream 341 k Installing dependencies: alsa-lib x86_64 1.2.5-4.el8 appstream 488 k atk x86_64 2.28.1-1.el8 appstream 270 k avahi-libs x86_64 0.7-20.el8 baseos 61 k copy-jdk-configs noarch 4.0-2.el8 appstream 29 k cups-libs x86_64 1:2.2.6-40.el8 baseos 432 k fribidi x86_64 1.0.4-8.el8 appstream 88 k …

Также будут предоставлены необходимые зависимости вместе с Java. При запросе подтверждения введите y, а затем нажмите Enter, чтобы продолжить установку. Возможно, вам также потребуется принять ключи подписи для репозиториев, откуда вы устанавливаете:

Output
Importing GPG key 0x6D745A60: Userid : "Release Engineering <[email protected]>" Fingerprint: 7051 C470 A929 F454 CEBE 37B7 15AF 5DAC 6D74 5A60 From : /etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial Is this ok [y/N]:

Введите y, а затем нажмите Enter снова.

Теперь у вас должна быть работающая установка Java. Чтобы подтвердить это, вы можете выполнить команду java -version, чтобы проверить версию Java, доступную в вашей среде:

  1. java -version

Примечание: В большинстве случаев аргументы командной строки предшествуют одним дефисом для аргументов с одной буквой или двумя дефисами для аргументов с полным словом. Java следует другому соглашению, используя один дефис для всех аргументов, в данном случае -version.

Output
openjdk version "1.8.0_322" OpenJDK Runtime Environment (build 1.8.0_322-b06) OpenJDK 64-Bit Server VM (build 25.322-b06, mixed mode)

Взаимодействие между соглашениями по именованию в Java и соглашениями по именованию пакетов в Linux может быть несколько запутанным. Ранее в этом учебнике мы разъяснили разницу между полной средой JDK для разработки и средой JRE для запуска Java-приложений. Хотя OpenJDK – это название дистрибутива Java с открытым исходным кодом, на самом деле вы установили только OpenJDK JRE. Чтобы установить полный OpenJDK JDK, вам следует установить соответствующий пакет с добавленным к его имени -devel. Это общее соглашение для пакетов разработки для других сред программирования, которому также следует Java, хотя здесь терминология пересекается неуклюже.

Как и ранее, вы можете установить java-devel, чтобы получить версию по умолчанию, или указать java-1.8.0-openjdk-devel:

  1. sudo yum install java-devel
Output
DigitalOcean Droplet Agent 63 kB/s | 3.3 kB 00:00 Dependencies resolved. ======================================================================================== Package Arch Version Repository Size ======================================================================================== Installing: java-1.8.0-openjdk-devel x86_64 1:1.8.0.322.b06-2.el8_5 appstream 9.8 M Transaction Summary ======================================================================================== Install 1 Package Total download size: 9.8 M Installed size: 41 M Is this ok [y/N]:

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

Шаг 2 – Установка других версий OpenJDK

Более недавно OpenJDK изменил свою схему нумерации версий, чтобы более тесно соответствовать выпускам Oracle Java. Чтобы установить более новую версию OpenJDK, вы можете указать номер версии в имени пакета, так же как с 1.8.0. Например, чтобы установить OpenJDK 17, вы можете выполнить команду yum install java-17-openjdk:

  1. sudo yum install java-17-openjdk
Output
Last metadata expiration check: 0:03:36 ago on Tue 22 Feb 2022 05:42:44 PM UTC. Dependencies resolved. ======================================================================================== Package Arch Version Repository Size ======================================================================================== Installing: java-17-openjdk x86_64 1:17.0.2.0.8-4.el8_5 appstream 244 k Installing dependencies: adwaita-cursor-theme noarch 3.28.0-2.el8 appstream 646 k adwaita-icon-theme noarch 3.28.0-2.el8 appstream 11 M at-spi2-atk x86_64 2.26.2-1.el8 appstream 88 k at-spi2-core x86_64 2.28.0-1.el8 appstream 168 k colord-libs x86_64 1.4.2-1.el8 appstream 234 k java-17-openjdk-headless x86_64 1:17.0.2.0.8-4.el8_5 appstream 41 M lcms2 x86_64 2.9-2.el8 appstream 163 k …

Как и раньше, вы можете установить полную среду JDK, добавив -devel к имени пакета. Однако после этого выполнение программ java по-прежнему будет использовать версию OpenJDK 1.8.0, которую вы установили ранее по умолчанию, что можно подтвердить, выполнив снова команду java -version:

  1. java -version
Output
openjdk version "1.8.0_322" OpenJDK Runtime Environment (build 1.8.0_322-b06) OpenJDK 64-Bit Server VM (build 25.322-b06, mixed mode)

На следующем этапе вы управляете установленными версиями Java.

Шаг 3 – Установка Вашей По Умолчанию Версии Java

Если вы установили несколько версий Java, вы можете задать одну из них по умолчанию (т.е. ту, которая будет запускаться, когда пользователь выполняет команду java). Кроме того, некоторым приложениям требуется, чтобы определенные переменные среды были установлены для определения, какую установку Java использовать.

Команда alternatives, которая управляет командами по умолчанию через символические ссылки, может использоваться для выбора версии Java по умолчанию. Чтобы отобразить список доступных версий Java, которые можно управлять с помощью alternatives, используйте alternatives --config java:

  1. sudo alternatives --config java

На выходе должны быть перечислены обе установленные вами версии Java:

output
There are 2 programs which provide 'java'. Selection Command ----------------------------------------------- *+ 1 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre/bin/java) 2 java-17-openjdk.x86_64 (/usr/lib/jvm/java-17-openjdk-17.0.2.0.8-4.el8_5.x86_64/bin/java) Enter to keep the current selection[+], or type selection number:

Введите номер выбранного варианта, чтобы выбрать, какой исполняемый файл java должен использоваться по умолчанию. Он переустановит необходимые символические ссылки в вашей системе, чтобы убедиться, что команда java указывает на правильный набор библиотек. Вы можете повторно запускать эту команду при необходимости, и вывод команды java -version должен изменяться соответственно:

  1. java -version
Output
openjdk version "17.0.2" 2022-01-18 LTS OpenJDK Runtime Environment 21.9 (build 17.0.2+8-LTS) OpenJDK 64-Bit Server VM 21.9 (build 17.0.2+8-LTS, mixed mode, sharing)

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

Например, если вы установили Java в /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre/bin (то есть ваш исполняемый файл java расположен в /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre/bin/java), вы можете установить переменную среды JAVA_HOME в оболочке bash или в скрипте следующим образом:

  1. export JAVA_HOME=(/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre

Примечание: Переменная среды JAVA_HOME предпочтительно, чтобы вы устанавливали путь к вашей установке Java, заканчивающийся в каталоге /jre. Это соглашение может измениться от одной переменной к другой, поэтому лучше внимательно проверить примеры при внесении изменений.

Если вы хотите, чтобы переменная JAVA_HOME была установлена по умолчанию для каждого пользователя на системе, добавьте предыдущую строку в файл /etc/environment. Вы можете добавить ее в файл с помощью перенаправления командной оболочки echo и >>, чтобы избежать необходимости редактировать файл /etc/environment напрямую, выполнив эту команду:

  1. sudo sh -c "echo export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre >> /etc/environment"

На следующем шаге вы установите собственную Java от Oracle рядом с вашими версиями OpenJDK.

Шаг 4 – Установка Oracle Java

Этот раздел руководства покажет вам, как установить Oracle Java JRE и JDK (64-разрядную версию), последнюю версию этих пакетов на момент написания.

Примечание: Если вы используете интерактивный терминал на этой странице, вы не сможете загрузить и установить Oracle Java в среду.

На протяжении этого раздела мы будем использовать команду wget для загрузки программных пакетов Oracle Java. wget может отсутствовать по умолчанию в вашем дистрибутиве Linux, поэтому для выполнения инструкций вам нужно будет установить его, выполнив следующую команду:

  1. sudo yum install wget

Вы должны принять Лицензионное соглашение Oracle Binary Code для Java SE, которое является одним из включенных шагов, перед установкой Oracle Java.

Примечание: Для установки Oracle Java вам нужно перейти на страницу загрузок Oracle Java, принять лицензионное соглашение и скопировать ссылку на загрузку соответствующего пакета Linux x86 .rpm. Замените скопированную ссылку на загрузку на выделенную часть команды wget.

Перейдите в домашний каталог и загрузите Oracle Java RPM с помощью этих команд:

  1. cd ~
  2. wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm"

Затем установите RPM с помощью yum localinstall (если вы загрузили другую версию, замените имя файла здесь):

  1. sudo yum localinstall jdk-17_linux-x64_bin.rpm

При подтверждении запроса введите y, а затем нажмите Enter, чтобы продолжить установку.

Вы можете удалить архивный файл, который вы загрузили ранее:

  1. rm ~/jdk-17_linux-x64_bin.rpm

Теперь вы можете повторно выполнить команду alternatives, и вы должны увидеть третью опцию для использования Oracle Java:

  1. sudo alternatives --config java
output
There are 3 programs which provide 'java'. Selection Command ----------------------------------------------- 1 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre/bin/java) + 2 java-17-openjdk.x86_64 (/usr/lib/jvm/java-17-openjdk-17.0.2.0.8-4.el8_5.x86_64/bin/java) * 3 /usr/java/jdk-17.0.2/bin/java Enter to keep the current selection[+], or type selection number:

Шаги в этом руководстве должны быть достаточными для установки и запуска любой доступной версии Java в зависимости от вашего случая использования.

Заключение

В этом руководстве вы установили и управляли несколькими версиями Java с помощью менеджера пакетов yum, команды alternatives и переменных среды. Это все фундаментальные аспекты управления средой Linux, и Java предоставляет особенно хороший пример работы с ними из-за своих множественных версий.

Далее вы можете захотеть узнать, как использовать Java в других контекстах.

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-java-on-centos-and-fedora