Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.
Кратко о задаче
Понадобится сервер с предустановленной Ubuntu 18.03 и настроенным файрволом, с учетными записями sudo и root (с привилегиями и без них). Вместо самостоятельной настройки можно арендовать готовую виртуальную машину у провайдера Simple-Server. Такой подход позволит быстрее разобраться, как установить Java на Линукс.
Процесс инсталляции JRE/JDK
Простейший способ обзавестись системой – остановиться на релизе, включенном в стандартный пакет Ubuntu. В ОС версии 18.03 поставляется Open JDK версии 10/11, представляющий собой пакеты JRE и JDK с открытыми исходниками. Первый вариант был в дистрибутиве до осени 2018 г., а после указанной даты стал использоваться второй.
Предварительно необходимо скачать обновления на указатель пакетов:
Очередным шагом перед установкой версии Open JDK рекомендуется убедиться, выполнялась ли инсталляция Java до этого момента:
Если машина еще «чистая», пользователь увидит на экране информацию:
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Перед началом работы желательно проверить версию компилятора:
Вывод будет выглядеть так (при штатной работе):
Выбор конкретной версии Open JDK
Пользователей не всегда устраивает**** установка стандартной версии JRE/JDK, предлагаемой по умолчанию. Это легко исправить, выбрав релиз вручную, например, исходя из требований конкретного продукта.
Версия Java 8 считается наиболее «живучей». Несмотря на прекращение официальной поддержки еще в 2019-м году, ее продолжают использовать в широком перечне программ. Чтобы установить ее вручную, выполняют команду:
sudo apt install openjdk-8-jdkТрадиционно проверяем, выполнена ли установка:
На экран будет выведена информация:
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После нажатия клавиши Enter нужно сделать обновление перечня пакетов:
И осуществить установку 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_HOME
В большинстве приложений на 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:В приведенном примере каталоги имеют значение:
- Open JDK 11 – /usr/lib/jvm/java-11-openjdk-amd64/bin/java.
- Open JDK 8 – /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java.
- Oracle Java 8 – /usr/lib/jvm/java-8-oracle/jre/bin/java.
Теперь нужно скопировать путь к папке для размещения выбранного пакета, открыть папку /etc/environment в nano для редактирования:
sudo nano /etc/environmentЗатем внести новую строку и вставить ранее помеченный путь к папке:
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64/bin/"Теперь переменная JAVA_HOME и указанный командой путь установки примет одинаковый вид для всех учетных записей. Правда, сначала нужно выйти из файла с сохранением внесенных изменений, а затем загрузить для применения новых условий к активному сеансу:
Чтобы выяснить, принялись ли изменения переменной среды, введите:
Завершение процедуры подтверждает вот такая информация на экране:
/usr/lib/jvm/java-11-openjdk-amd64/bin/Но это произойдет для текущего пользователя, остальным понадобится перезагрузить систему.
Нужен сервер для практики? Арендуйте VPS/VDS в России — root-доступ, NVMe, DDoS-защита и поддержка 24/7.