Home » Linux » Установка Oracle Java на Ubuntu и Centos

Установка Oracle Java на Ubuntu и Centos

16 апреля 2019 года компания Oracle изменила лицензию по распространению Java SE. Теперь JRE от Oracle можно использовать бесплатно только для дома, либо при разработке ПО. Это повлекло за собой различные изменения, такие как отсутствие возможности скачать jvm без регистрации на сайте oracle и закрытие основных репозиториев для установки java из пакетов.

Теоретический курс по основам сетевых технологий. Позволит системным администраторам упорядочить и восполнить пробелы в знаниях. Цена очень доступная, есть бесплатный доступ. Все подробности по . Можно пройти тест на знание сетей, бесплатно и без регистрации.

Введение

Мне вынужденно пришлось погрузиться в эту тему, потому что на днях требовалось установить Oracle Java JRE 8 на Ubuntu 18 и у меня никак не получалось это сделать. В сети полно инструкций, простых и понятных, как установить Java на Ubuntu 18, но все они разом стали неактуальны. Популярный репозиторий webupd8team/java перешел в статус DISCONTINUED. Выполнить установку из него больше не получится. Будет вот такая ошибка:

Package oracle-java8-installer is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'oracle-java8-installer' has no installation candidate

Package 'oracle-java8-installer' has no installation candidate

Теперь установить Oracle JRE или SDK можно только вручную. Для этого надо:

  1. Зарегистрироваться и авторизоваться на сайте oracle.com.
  2. Скачать бинарники или rpm пакет с сайта.
  3. Скопировать файлы на целевой сервер.
  4. Вручную установить Oracle JRE, прописать path и environment.

Я подробно опишу как это сделать для двух популярных систем — Ubuntu и Centos. Начнем с более сложного, с Ubuntu 18.

Обращаю внимание, что речь идет именно об Oracle Java Runtime Environment (JRE). Некоторые java проекты корректно работают только на ней. Если у проекта есть поддержка OpenJDK, то используйте ее.

Установка Oracle Java на Ubuntu

Как я уже сказал выше, для установки oracle java необходимо скачать бинарники. Причем, сделать это так, как я недавно описывал в статье про настройку ELK Stack не получится. Без авторизации ссылки не доступны. Так что необходимо зарегистрироваться на сайте и скачать бинарники себе на компьютер. Я покажу как это сделать на примере Oracle Java 8. Идем на страницу загрузки, авторизовываемся и скачиваем jre-8u211-linux-x64.tar.gz.

Установка Oracle Java на Ubuntu

Не забудьте отметить флажок напротив Accept License Agreement. После загрузки любым удобным для вас способом скопируйте файл на целевой сервер, куда будем устанавливать Java 8. Я для этого использую scp. Копирую файл в домашнюю директорию /root. Создаем директорию для java и распаковываем туда бинарники.

# mkdir /usr/lib/jvm
# tar -zxf /root/jre-8u211-linux-x64.tar.gz -C /usr/lib/jvm

Java машина должна расположиться в директории /usr/lib/jvm/jre1.8.0_211. Теперь нам необходимо создать символьные ссылки на установленную версию java. Делаем это с помощью update-alternatives.

# update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jre1.8.0_211/bin/java" 1500
# update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jre1.8.0_211/bin/javaws" 1500

Зададим переменную JAVA_HOME, которую используют некоторые приложения. Для этого добавляем в файл /etc/environment следующую строку.

JAVA_HOME="/usr/lib/jvm/jre1.8.0_211"

Сохраняем его и применяем изменение.

# source /etc/environment

Теперь проверим, что у нас получилось.

# java -version
# echo $JAVA_HOME

Проверка версии java

Все нормально. В случае, если необходимо обновить или установить другую версию Java, то все проделывается точно так же, только в конце указываются ссылки на новую директорию с Java.

Если вам необходимо установить Oracle SDK, то делаете все то же самое, только бинарники скачиваете по другой ссылке — Java SE Development Kit.

В принципе, на этом с установкой Oracle Java на Ubuntu все. В общем случае выполнено все необходимое. Но я в процессе компиляции одного приложения столкнулся с одной ошибкой. Расскажу вам, как ее решил.

Could not find tools.jar

Приложение использовало систему автоматической сборки gradle, которая прекращала сборку с ошибкой.

* What went wrong:
Execution failed for task ':compileJava'.
> Could not find tools.jar. Please check that /usr/lib/jvm/jre1.8.0_211 contains a valid JDK installation.

Could not find tools.jar

Я долго гуглил решение. В общем случае оно состоит в том, что нужно тем или иным образом явно указать путь к tools.jar, но у меня этого файла вообще не было в системе и я не знал, где его взять. Я вообще не разбираюсь в теме с явой, первый раз собирал приложение сам. Вышел из положения в итоге следующим образом. Я установил openjdk-8-jdk следующей командой.

# apt install openjdk-8-jdk

Она установилась в директорию /usr/lib/jvm/java-8-openjdk-amd64. Там в директории libs лежал файл tools.jar. Я просто скопировал его в /usr/lib/jvm/jre1.8.0_211/lib, где установлена oracle java. После этого сборка прошла без ошибок.

Уже после написания статьи понял, что мне нужно было установить не Oracle JRE, а JDK, тогда бы все сразу собралось без ошибок. Надеюсь эта информация будет полезна тем, кто будет искать решение похожей проблемы. Она возникла из-за недопонимания различий между JRE и JDK.

Что такое Oracle JRE и JDK и в чем отличие?

Моя первоначальная суета вокруг установки и компиляции Java приложений была связана с тем, что я не обратил внимание на то, что существуют 2 совершенно разных пакета для установки Java.

  • JRE — Java Runtime Environment. Это программный продукт со всем необходимым для запуска скомпилированных java приложений. Пакет включает в себя виртуальную машину ява (JVM), библиотеки, и всю остальную java инфраструктуру. Этот софт стал платным с 16-го апреля.
  • JDK — the Java Development Kit. Это полноценная SDK для разработки приложений на Java. Она включает в себя все, что есть в JRE, плюс компилятор (javac) и различные утилиты. В том числе tools.jar, которых мне не хватало для сборки, описанной выше. JDK уже давно платный, не помню с какого времени.

Подробнее об этих продуктах и об отличиях JRE и SDK можно почитать на официальном сайте в faq. Таким образом, если вам необходимо только запускать уже скомпилированные java приложения, достаточно пакета JRE. Если вам нужно собрать из исходников java программу, ставьте SDK. Я с этим разобрался только в момент написания этой статьи, так что изложение получилось не очень последовательным.

Установка Oracle Java на Centos

Установить Java SE Runtime Environment на CentOS по прежнему не сложно, так как есть готовый rpm пакет. Единственное неудобство, его нужно вручную скачивать с сайта и передавать на сервер. Для скачивания нужно зарегистрироваться на сайте oracle.com. После авторизации, необходимо сходить в раздел загрузки и скачать rpm пакет.

Установка Oracle Java на Centos

После этого передаем его на целевой сервер и устанавливаем Oracle Java на CentOS следующей командой:

# yum localinstall jre-8u211-linux-x64.rpm

После этого можно проверить версию Java в консоли.

# java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

Задать переменную $JAVA_HOME можно по аналогии с предыдущем разделом по убунте. Если вам необходимо установить Oracle SDK, то делаете все то же самое, только бинарники скачиваете по другой ссылке — Java SE Development Kit.

На этом установка Oracle Java на Centos закончена.

Заключение

Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

Перед установкой Oracle Java не забывайте, что теперь ее нельзя просто так использовать в коммерческой среде. Придется платить, если нужна лицензионная чистота. Думаю, что в ближайшее время все проекты постараются отладить свою работу под бесплатным OpenJDK. Число клиентов Oracle JRE явно убавится в разы.

Для меня остается не понятен момент с работой Java на Windows. Она требуется для кучи всевозможных сервисов и оборудования. По идее, теперь за ее использование нужно платить. Как быть со всякими старыми железками, к которым обновлений уже не будет? Что думаете по этому поводу?

Онлайн курсы по Mikrotik

Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую пройти курсы по программе, основанной на информации из официального курса MikroTik Certified Network Associate. Помимо официальной программы, в курсах будут лабораторные работы, в которых вы на практике сможете проверить и закрепить полученные знания. Все подробности на сайте . Стоимость обучения весьма демократична, хорошая возможность получить новые знания в актуальной на сегодняшний день предметной области. Особенности курсов:
  • Знания, ориентированные на практику;
  • Реальные ситуации и задачи;
  • Лучшее из международных программ.

Помогла статья? Есть возможность отблагодарить автора

Автор Zerox

Zerox
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству.

5 комментариев

  1. Аватар

    Спасибо за материал. Помогло настроить java для Minecraft на Ubuntu 19.04

  2. Аватар

    БЛАГОСЛОВИ ТЕБЯ ГОСПОДЬ!!!!!!!!!!!!!!!!!!!!

  3. Аватар

    Спасибо!! всё просто и понятно даже такому ламеру как я )))

  4. Аватар

    Без регистрации пока что можно скачать с этой страницы https://java.com/ru/download/linux_manual.jsp

Добавить комментарий

Ваш e-mail не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.