Поиск по сайту:

Как установить 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, стандартная версия). Почти все программное обеспечение Java с открытым исходным кодом предназначено для работы с Java SE.

Можно установить два разных пакета Java SE: среду выполнения Java (JRE) и комплект разработки Java (JDK). JRE — это реализация виртуальной машины Java (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 <infrastructure@rockylinux.org>" 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 следует другому соглашению об использовании одного тире для всех аргументов, в данном случае -версия.

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. Чтобы установить полный JDK OpenJDK, вы должны установить соответствующий пакет с добавлением -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 установить 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-разрядную версию) — последнюю версию этих пакетов на момент написания этой статьи.

Примечание:

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

  1. sudo yum install wget

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

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

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

  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 в других контекстах.