Программные модули Java и виртуальной машины JVM часто используют в работе различных приложений, например Netflix, Spotify, Uber. Поэтому важно уметь инсталлировать на машину свободные пакеты и альтернативные релизы от Oracle – JRE (Java Runtime Environment) и JDK (Java Development Kit). В этой статье рассмотрим процесс установки Java в Ubuntu при помощи apt и выберем предпочитаемую версию.
Понадобится сервер с предустановленной Ubuntu 18.03 и настроенным файрволом, с учетными записями sudo и root (с привилегиями и без них). Вместо самостоятельной настройки можно арендовать готовую виртуальную машину у провайдера timeweb.cloud. Такой подход позволит быстрее разобраться, как установить Java на Линукс.
Простейший способ обзавестись системой – остановиться на релизе, включенном в стандартный пакет Ubuntu. В ОС версии 18.03 поставляется Open JDK версии 10/11, представляющий собой пакеты JRE и JDK с открытыми исходниками. Первый вариант был в дистрибутиве до осени 2018 г., а после указанной даты стал использоваться второй.
Предварительно необходимо скачать обновления на указатель пакетов:
sudo apt update
Очередным шагом перед установкой версии Open JDK рекомендуется убедиться, выполнялась ли инсталляция Java до этого момента:
java -version
Если машина еще «чистая», пользователь увидит на экране информацию:
Command 'java' not found, but can be installed with:
apt install default-jre
apt install openjdk-11-jre-headless
apt install openjdk-8-jre-headless
apt install openjdk-9-jre-headless
Теперь можно устанавливать сам пакет Open JDK:
sudo apt install default-jre
Результат выполнения команды позволит запускать практически любые приложения, созданные на языке программирования Java. По завершении желательно проверить наличие среды JRE, как и до этого убедиться в ее отсутствии. После ввода команды java –version будет отображено:
openjdk version "10.0.1" 2018-04-17
OpenJDK Runtime Environment (build 10.0.1+10-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 10.0.1+10-Ubuntu-3ubuntu1, mixed mode)
Чтобы обеспечить возможность компиляции и запуска даже специфических приложений в дополнение понадобится еще и пакет JDK. Выполняется это командой:
sudo apt install default-jdk
Перед началом работы желательно проверить версию компилятора:
javac -version
Вывод будет выглядеть так (при штатной работе):
javac 10.0.1
Пользователей не всегда устраивает установка стандартной версии JRE/JDK, предлагаемой по умолчанию. Это легко исправить, выбрав релиз вручную, например, исходя из требований конкретного продукта.
Версия Java 8 считается наиболее «живучей». Несмотря на прекращение официальной поддержки еще в 2019-м году, ее продолжают использовать в широком перечне программ. Чтобы установить ее вручную, выполняют команду:
sudo apt install openjdk-8-jdk
Традиционно проверяем, выполнена ли установка:
java –version
На экран будет выведена информация:
openjdk version "1.8.0_162"
OpenJDK Runtime Environment (build 1.8.0_162-8u162-b12-1-b12)
OpenJDK 64-Bit Server VM (build 25.162-b12, mixed mode)
В репозитории Ubuntu имеется и обновленный пакет версии 10/11. Им можно воспользоваться, если встроенный перестал работать или речь идет о нестандартной сборке, откуда было удалено «все лишнее». Инсталляция выполняется командами:
sudo apt install openjdk-11-jdk
sudo apt install openjdk-11-jre
В ряде случаев может понадобиться пакет от Oracle JDK. Актуальной версией Java здесь является 8-й релиз. Перед инсталляцией добавляют хранилище пакетов:
sudo add-apt-repository ppa:webupd8team/java
Результат на экране:
Update: Oracle Java 9 has reached end of life: http://www.oracle.com/technetwork/java/javase/downloads/j
dk9-downloads-3848520.html
The PPA supports Ubuntu 18.04, 17.10, 16.04, 14.04 and 12.04.
More info (and Ubuntu installation instructions):
- for Oracle Java 8: http://www.webupd8.org/2012/09/install-oracle-java-8-in-ubuntu-via-ppa.html
Debian installation instructions:
- Oracle Java 8: http://www.webupd8.org/2014/03/how-to-install-oracle-java-8-in-debian.html
For Oracle Java 10, see a different PPA: https://www.linuxuprising.com/2018/04/install-oracle-java-10-in-ubuntu-or.html
More info: https://launchpad.net/~webupd8team/+archive/ubuntu/java
Press [ENTER] to continue or Ctrl-c to cancel adding it.
После нажатия клавиши Enter нужно сделать обновление перечня пакетов:
sudo apt update
И осуществить установку Java 8:
sudo apt install oracle-java8-installer
После загрузки пакета система предложит лицензионное соглашение, сама инсталляция запустится только после его подтверждения.
На одну машину допускается инсталлировать несколько копий платформы Java. Вариант, который применяется по умолчанию, легко увидеть в команде:
sudo update-alternatives --config java
Если пользователь устанавливал ранее перечисленные релизы Java, результат будет таким:
There are 3 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 manual mode
2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
3 /usr/lib/jvm/java-8-oracle/jre/bin/java 1081 manual mode
Теперь достаточно ввести номер требуемой версии или нажать Enter, чтобы сохранить настройки (пункт помечен «звездочкой»). То же применимо для других модулей, к примеру, компилятора javac или keytool, javadoc, jarsigner и пр.:
sudo update-alternatives --config javac
В большинстве приложений на Java с помощью переменной среды JAVA_HOME выясняют папку, куда установлена платформа. Чтобы определить это, понадобится команда:
sudo update-alternatives --config java
Результат будет выведен на экран:
There are 3 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 manual mode
2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
3 /usr/lib/jvm/java-8-oracle/jre/bin/java 1081 manual mode
Press <enter> to keep the current choice[*], or type selection number:
В приведенном примере каталоги имеют значение:
Теперь нужно скопировать путь к папке для размещения выбранного пакета, открыть папку /etc/environment в nano для редактирования:
sudo nano /etc/environment
Затем внести новую строку и вставить ранее помеченный путь к папке:
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64/bin/"
Теперь переменная JAVA_HOME и указанный командой путь установки примет одинаковый вид для всех учетных записей. Правда, сначала нужно выйти из файла с сохранением внесенных изменений, а затем загрузить для применения новых условий к активному сеансу:
source /etc/environment
Чтобы выяснить, принялись ли изменения переменной среды, введите:
echo $JAVA_HOME
Завершение процедуры подтверждает вот такая информация на экране:
/usr/lib/jvm/java-11-openjdk-amd64/bin/
Но это произойдет для текущего пользователя, остальным понадобится перезагрузить систему.
Вот мы и разобрались в установке стандартных версий JRE/JDK, в том числе официальных релизов от Oracle. После инсталляции платформы можно использовать приложения, разработанные на Java и зависящие от внешних модулей, без ограничений.