Установка Java с помощью apt в Debian 10
Java и JVM (Java virtual machine) – очень широко распространённые и востребованные программы (к примеру, они необходимы для работы Tomcat, Jetty, Glassfish, Cassandra и Jenkins).
В данном мануале вы научитесь устанавливать различные версии Java Runtime Environment (JRE) и Java Developer Kit (JDK) с помощью пакетного менеджера apt.
Вы установите OpenJDK 11, а также официальные пакеты Java 11 от Oracle. Также вы научитесь выбирать версию Java по умолчанию. После этого вы сможете использовать JDK для разработки или Java Runtime для запуска программного обеспечения.
Требования
Для работы вам нужен сервер Debian 10, настроенный согласно этому мануалу.
Установка стандартной версии JRE/JDK
Проще всего установить стандартную версию Java, которая поставляется вместе с Debian. По умолчанию вместе с Debian 10 идет Open JDK 11, открытая версия JRE и JDK, совместимая с Java 11.
Java 11 является текущей версией Long Term Support.
Чтобы установить версию OpenJDK, сначала обновите индекс пакетов:
А затем запросите версию Java (чтобы проверить, установлена ли Java в данной системе):
Если на вашем сервере Java не установлена, вы увидите такой вывод:
-bash: java: command not found
Выполните следующую команду, чтобы установить OpenJDK:
sudo apt install default-jre
Данная команда установит Java Runtime Environment (JRE), что позволит вам запускать почти все программы Java.
Запросите версию установленной программы:
openjdk version «11.0.4» 2019-07-16
OpenJDK Runtime Environment (build 11.0.4+11-post-Debian-1deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.4+11-post-Debian-1deb10u1, mixed mode, sharing)
Кроме JRE вам может понадобиться Java Development Kit (JDK), чтобы скомпилировать и запустить определенное программное обеспечение на базе Java. Чтобы установить JDK, выполните следующую команду:
sudo apt install default-jdk
Убедитесь, что версия JDK установлена, проверив версию javac, компилятора Java:
Вы увидите следующий результат:
Установка Oracle JDK
Если вам нужно установить Oracle JDK, официальную версию от Oracle, сначала установите инсталлятор из стороннего репозитория.
Давайте загрузим Java из репозитория Oracle.
Загрузка пакета Java SE от Oracle
Из-за недавних изменений в том, как Oracle обрабатывает лицензирование Java, вам сначала нужно создать учетную запись Oracle и загрузить программное обеспечение непосредственно с этого веб-сайта. Только после этого вы сможете продолжить установку.
Если у вас еще нет учетной записи Oracle, создайте ее на этой странице.
Теперь нужно убедиться, что мы загружаем правильную версию Java – ее номер должен соответствовать тому, что ожидает получить инсталлятор. Чтобы проверить, какая версия нужна инсталлятору, откройте список пакетов в его репозитории.
Мы загрузим пакет из этого репозитория на следующем этапе, а пока нужно найти файлы oracle-java11-installer-local…
В этом случае инсталлятор ожидает версию 11.0.4. Все числа, которые идут после дефиса в номере версии пакета, можно смело игнорировать.
Теперь, когда мы знаем правильный номер версии, найдите необходимую версию на , странице загрузки Java.
Нажмите кнопку загрузки. После этого нужно принять лицензионное соглашение, для этого кликните Accept License Agreement. Затем выберите пакет .tar.gz для Linux, и загрузка начнется. Возможно, вам придется войти в свою учетную запись Oracle еще раз.
После окончания загрузки нужно загрузить выбранный файл на сервер. Для этого мы будем использовать команду scp, но вы можете использовать любое удобное программное обеспечение для передачи файлов.
На локальном компьютере используйте инструмент scp для загрузки файла на ваш сервер. Согласно следующей команде, ваш файл находится в каталог Downloads в домашней папке пользователя и будет загружен в домашний каталог пользователя 8host на сервере. Если в вашей ситуации пути отличаются, укажите свои пути:
scp ~/Downloads/jdk-11.0.4_linux-x64_bin.tar.gz 8host@your_server_ip:~
Теперь у вас на сервере есть правильный пакет программного обеспечения Java. Можно добавить репозиторий, в котором находится нужный нам инсталлятор.
Добавление apt-репозитория инсталлятора
Сначала установите пакет software-properties-common, который добавляет команду apt-get-repository – она нужна для добавления в систему дополнительных репозиториев.
sudo apt install software-properties-common
После этого нужно импортировать ключ подписи, чтобы проверить программу, которую мы собираемся установить:
sudo apt-key adv —keyserver keyserver.ubuntu.com —recv-keys EA8CACC073C3DB2A
С помощью команды add-apt-repository добавьте нужный репозиторий в список источников:
sudo add-apt-repository ppa:linuxuprising/java
После этого вы увидите сообщение:
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, чтобы продолжить установку. Затем система попробует импортировать ключи GPG, но не сможет найти валидные.
no valid OpenPGP data found
Это предупреждение можно проигнорировать.
Чтобы обновить список исходников и сделать новое ПО доступным для установки, введите:
Установка загруженной версии Java
Сначала нужно создать отдельный каталог, который инсталлятор использует для поиска пакета Java, а затем нужно скопировать туда файл .tar.gz.
sudo mkdir -p /var/cache/oracle-jdk11-installer-local/
sudo cp ~/jdk-11.0.4_linux-x64_bin.tar.gz /var/cache/oracle-jdk11-installer-local/
Когда процесс завершится, установите Java 11 от Oracle, это пакет oracle-java11-installer-local:
sudo apt install oracle-java11-installer-local
Сначала инсталлятор предложит вам принять лицензию. После этого он извлечет и установит Java.
Управление Java
На одном сервере может одновременно находиться несколько экземпляров Java. Вы можете выбрать версию Java, которая будет использоваться системой по умолчанию. Для этого существует команда update-alternatives.
sudo update-alternatives —config java
Команда вернёт примерно следующий вывод (в данном случае показан вывод команды после установки всех вышеперечисленных версий Java):
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 to keep the current choice[*], or type selection number:
Теперь выберите номер версии, которая будет использоваться по умолчанию, и нажмите Enter. Таким же образом можно настроить и другие команды Java, например, компилятор (javac).
sudo update-alternatives —config javac
Также эта команда работает для keytool, javadoc, jarsigner и т.п.
Переменная JAVA_HOME
Многие программы используют переменную среды JAVA_HOME, чтобы определить расположение установки Java. Чтобы установить эту переменную, нужно сначала узнать, где именно хранится установка Java. Для этого используйте эту команду:
sudo update-alternatives —config java
Команда покажет все установки 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/
В данном случае у установок такие пути:
- Oracle Java 11: /usr/lib/jvm/java-11-oracle/bin/java.
- OpenJDK 11: /usr/lib/jvm/java-11-openjdk-amd64/bin/java.
Скопируйте путь необходимой вам версии и откройте /etc/environment в текстовом редакторе:
Добавьте следующую строку в конец этого файла (замените условный путь к программе только что скопированным путём):
При изменении файла путь JAVA_HOME будет установлен для всех пользователей данной системы.
Сохраните и закройте файл. Чтобы обновить настройки, введите:
Убедитесь, что переменная среды установлена верно. Для этого введите:
echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle/jre
Команда должна вернуть путь к версии, который вы только что установили.
Заключение
Теперь вы знаете, как установить несколько версий Java и выбрать версию по умолчанию. Сейчас вы можете установить несколько программ, основанных на Java, например, Tomcat, Jetty, Glassfish, Cassandra или Jenkins.