Java и JVM (виртуальная машина Java) требуются для многих видов программного обеспечения, включая Tomcat, Jetty, Glassfish, Cassandra и Jenkins.
Это руководство поможет вам научиться устанавливать различные версии Java Runtime Environment (JRE) и Java Developer Kit (JDK) с помощью apt
. Вы установите OpenJDK, а также официальную версию JDK от Oracle. Затем вы выберете версию, которую предпочитаете использовать в своих проектах. После этого вы сможете использовать JDK для разработки программного обеспечения и Java Runtime для запуска программного обеспечения.
Для данного обучающего руководства вам потребуется следующее:
Самый простой вариант установки Java — использовать версию, входящую в пакет Ubuntu. По умолчанию в пакет Ubuntu 20.04 входит Open JDK 11 (версия JRE и JDK с открытым исходным кодом).
Для установки этой версии нужно вначале обновить указатель пакетов:
- sudo apt update
Затем нужно проверить, выполнялась ли установка Java ранее:
- java -version
Если установка Java не выполнялась, вы увидите следующие результаты:
OutputCommand '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
Вывод должен выглядеть следующим образом:
Outputopenjdk 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
Вывод должен выглядеть так:
Outputjavac 11.0.7
Теперь посмотрим, как установить официальные версии JDK и JRE от Oracle.
Лицензионное соглашение Oracle для Java не разрешает автоматическую установку через менеджеры пакетов. Для установки официальной версии Oracle JDK, которую предлагает Oracle, вам нужно создать учетную запись Oracle и вручную загрузить JDK, чтобы добавить новый репозиторий пакетов для той версии, которую вы собираетесь использовать. Затем вы можете использовать apt
для ее установки с помощью скрипта установки от сторонних разработчиков.
Версия JDK от Oracle, которая вам потребуется, должна соответствовать версии скрипта установщика. Чтобы узнать, какая версия вам нужна, перейдите на страницу oracle-java11-installer
.
Найдите пакет для Focal, как показано на следующем изображении:
На этом изображении версия скрипта 11.0.7
. В данном случае вам понадобится Oracle JDK 11.0.7. Вам не нужно ничего загружать с этой страницы, вы загрузите скрипт установки через apt
.
Затем перейдите на страницу загрузок и найдите версию, которая вам нужна.
Нажмите кнопку JDK Download, и вы увидите экран, отображающий доступные версии. Нажмите на пакет .tar.gz
для 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
Вы увидите следующий результат:
Outputgpg: 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. Задать версию по умолчанию можно через командную строку с помощью команды update-alternatives
.
- sudo update-alternatives --config java
Если вы установили обе версии Java, перечисленные в этом обучающем руководстве, результат будет выглядеть так:
OutputThere 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 и путь установки:
OutputThere 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:
В данном случае пути установки выглядят следующим образом:
/usr/lib/jvm/java-11-openjdk-amd64/bin/java
./usr/lib/jvm/java-11-oracle/jre/bin/java
.Скопируйте путь каталога установки предпочитаемой версии. Откройте каталог /etc/environment
в nano
или другом текстовом редакторе:
- sudo nano /etc/environment
В конце этого файла добавьте следующую строку, чтобы заменить выделенный путь на собственный скопированный путь, но не включайте часть пути bin/
:
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.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Sign up for Infrastructure as a Newsletter.
Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Great! Thank you!