Введение
Этот учебник покажет вам, как установить 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
:
По умолчанию попытка установки java
без указания версии приведет к установке наиболее распространенной стабильной версии OpenJDK JRE. Как видно из этого вывода, на момент написания это java-1.8.0-openjdk
:
OutputLast 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, чтобы продолжить установку. Возможно, вам также потребуется принять ключи подписи для репозиториев, откуда вы устанавливаете:
OutputImporting 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, доступную в вашей среде:
Примечание: В большинстве случаев аргументы командной строки предшествуют одним дефисом для аргументов с одной буквой или двумя дефисами для аргументов с полным словом. Java следует другому соглашению, используя один дефис для всех аргументов, в данном случае -version
.
Outputopenjdk 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
:
OutputDigitalOcean 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
:
OutputLast 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
:
Outputopenjdk 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
:
На выходе должны быть перечислены обе установленные вами версии Java:
outputThere 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
должен изменяться соответственно:
Outputopenjdk 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 или в скрипте следующим образом:
Примечание: Переменная среды JAVA_HOME
предпочтительно, чтобы вы устанавливали путь к вашей установке Java, заканчивающийся в каталоге /jre
. Это соглашение может измениться от одной переменной к другой, поэтому лучше внимательно проверить примеры при внесении изменений.
Если вы хотите, чтобы переменная JAVA_HOME
была установлена по умолчанию для каждого пользователя на системе, добавьте предыдущую строку в файл /etc/environment
. Вы можете добавить ее в файл с помощью перенаправления командной оболочки echo
и >>
, чтобы избежать необходимости редактировать файл /etc/environment
напрямую, выполнив эту команду:
На следующем шаге вы установите собственную Java от Oracle рядом с вашими версиями OpenJDK.
Шаг 4 – Установка Oracle Java
Этот раздел руководства покажет вам, как установить Oracle Java JRE и JDK (64-разрядную версию), последнюю версию этих пакетов на момент написания.
Примечание: Если вы используете интерактивный терминал на этой странице, вы не сможете загрузить и установить Oracle Java в среду.
На протяжении этого раздела мы будем использовать команду wget
для загрузки программных пакетов Oracle Java. wget
может отсутствовать по умолчанию в вашем дистрибутиве Linux, поэтому для выполнения инструкций вам нужно будет установить его, выполнив следующую команду:
Вы должны принять Лицензионное соглашение Oracle Binary Code для Java SE, которое является одним из включенных шагов, перед установкой Oracle Java.
Примечание: Для установки Oracle Java вам нужно перейти на страницу загрузок Oracle Java, принять лицензионное соглашение и скопировать ссылку на загрузку соответствующего пакета Linux x86 .rpm
. Замените скопированную ссылку на загрузку на выделенную часть команды wget
.
Перейдите в домашний каталог и загрузите Oracle Java RPM с помощью этих команд:
Затем установите RPM с помощью yum localinstall
(если вы загрузили другую версию, замените имя файла здесь):
При подтверждении запроса введите y
, а затем нажмите Enter, чтобы продолжить установку.
Вы можете удалить архивный файл, который вы загрузили ранее:
Теперь вы можете повторно выполнить команду alternatives
, и вы должны увидеть третью опцию для использования Oracle Java:
outputThere 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