Как установить OpenJDK 8 на 14.04 LTS?

306

Java 8 теперь доступна в соответствии с http://openjdk.java.net/projects/jdk8/ , но http://openjdk.java.net/install/ пока не упоминает, как установить OpenJDK 8 (не Oracle Java) на Ubuntu 14.04 Долгосрочная поддержка. (На 14.10 и позже просто беги apt-get install openjdk-8-jdk)

Как и когда это можно сделать?

(2017-08-08: Очень краткий ответ: OpenJDK 8 по состоянию на 2017-08-08 официально не доступен из официальных репозиториев как пакет APT для Ubuntu 14.04. См. Полное резюме в этом ответе )

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


Турбьерн Равн Андерсен
источник
1
Вы должны скомпилировать это самостоятельно. Вот как это сделать: github.com/hgomez/obuildfactory/wiki/… Измените имя файла, чтобы оно соответствовало версии 8 ;-)
Rinzwind
2
Azul начал предоставлять сборки OpenJDK под названием «Zulu», которые можно загружать, распаковывать и использовать автоматически. (Они зарабатывают деньги от поддержки). azulsystems.com/products/zulu/downloads
Турбьёрн Равн Андерсен
1
Примечательно, что тот же ppa, на котором размещается apt-fast для trusty ppa:saiarcot895/myppa, имеет версию openjdk-8, которая работает.
пожимает
По прошествии времени кажется, что самое простое решение - просто обновить 16.04 LTS, когда это возможно.
Турбьёрн Равн Андерсен

Ответы:

277

Вы можете сделать это для;

Окончательное обновление

JDK

sudo apt-get install openjdk-8-jdk

JRE

sudo apt-get install openjdk-8-jre

Старое обновление

Я нашел два хранилища, но я не рекомендую

  • OpenJDK строит (все арки)

    ppa:openjdk-r/ppa
  • OpenJDK 8 Backport для надежных

    ppa:jochenkemnade/openjdk-8

Оригинал сообщения

Если вы действительно хотите использовать OpenJDK, вы должны скомпилировать из исходного кода. Для OpenJDK еще нет PPA.

Это было запрошено по адресу https://bugs.launchpad.net/ubuntu/+bug/1297065

Я рекомендую вам использовать Webup8 Oracle Java8 Installer

sudo add-apt-repository ppa:webupd8team/java -y
sudo apt-get update
sudo apt-get install oracle-java8-installer

Для автоматической настройки переменных среды Java 8

sudo apt-get install oracle-java8-set-default

Проверь это

java -version

Таким образом, вы должны ждать, чтобы использовать OpenJDK8

muhasturk
источник
8
@JohnMerlino Я думаю, что PPA позволяет автоматически обновлять при выпуске новых версий.
Турбьёрн Равн Андерсен
7
openjdk-8 теперь в утопическом. bugs.launchpad.net/ubuntu/+source/openjdk-8/+bug/1341628 был повышен до бэкпорта до 14.04, так как это LTS:
Торбьерн Равн Андерсен
56
Почему новый редактировать? Кажется, он все еще не в репо 14.04 и sudo apt-get install openjdk-8-jdk, по крайней мере, не работает для меня.
xji
17
По состоянию на 2016-01-11 неофициальные PPA Ubuntu по-прежнему необходимы, так как OpenJDK 8 еще не попал в бэкпорты. Я не считаю это ответом на мой вопрос, хотя, похоже, это делают другие.
Турбьёрн Равн Андерсен
8
Этот ответ вводит в заблуждение из-за того, что он неполный, он говорит, что не рекомендует упомянутый PPA, но не будет работать без него.
Reinier Post
176
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk
sudo update-alternatives --config java
sudo update-alternatives --config javac
Панкадж Вахане
источник
7
Это хранилище датировано; на сегодняшний день последний выпуск openjdk 1.8 - 66. Версия, доступная в этом репозитории - 45.
Mattm
Не удалось получить ppa.launchpad.net/openjdk-r/ppa/ubuntu/pool/main/o/openjdk-8/… 502 apt-cacher: libcurl error: сбой при получении данных от однорангового
узла
1
Это правильные минимальные шаги. 4 и 5 являются необязательными и, возможно, не требуются.
воздух
Не работает для Ubuntu 14.04E: Package 'openjdk-8-jdk' has no installation candidate
Наивный
Это помогло мне при обновлении Jenkins (более новая версия требовала Java8, в моей системе была установлена ​​только Java7). Примечательно, что четвертая строка была критической, чтобы Дженкинс вел себя правильно; пока не запустил, я продолжал получать Jenkins requires Java8 or later, but you are running 1.7.0_121-b00 from /usr/lib/jvm/java-7-openjdk-amd64/jre. Воздержитесь ... Я бы дал вам больше, если бы мог.
Доктор J
62

OpenJDK 8 был выпущен в марте 2014 года. На момент появления этого вопроса в официальных репозиториях Ubuntu не было пакетов OpenJDK 8 для какой-либо версии Ubuntu. Они «будут доступны в ближайшее время», как говорится на странице проекта JDK 8 , для некоторого определения в ближайшее время.

Во-первых, пакеты OpenJDK 8 появятся в разрабатываемой версии Ubuntu. Это может произойти во время цикла разработки 14.10, но, насколько мне известно, нет установленного графика. Некоторые предварительные пакеты были собраны и доступны для тестирования, см. Объявление в списках рассылки debian-java и Ubuntu openjdk . В какой-то момент эти пакеты будут загружены в репозитории разработки Debian и Ubuntu.

Как только OpenJDK 8 появится в версии для разработки Ubuntu, можно будет запросить его перенос в 14.04. Обратите внимание, что он никогда не будет доступен в основном trustyрепозитории, но если вы используете trusty-backportsего, он может быть установлен оттуда в какой-то момент. Читайте о процессе запроса backports в Ubuntu здесь .

Майк Миллер
источник
4
Я попытался ответить на ваш вопрос «как и когда» с теми ограничениями, которые вам, по-видимому, нужны: должны быть из официальных репозиториев, должны быть OpenJDK и должны быть выпуском 14.04 LTS.
Майк Миллер
30
Его февраль 2016 года, а java 8 все еще недоступен на Ubuntu 14.04 LTS. Это разочаровывает.
Бхавин Доши
2
Это апрель 2016 года, до сих пор нет Java 8 ...
Стефан Хеннингсен
3
Ubuntu 16.04 выйдет в апреле 2016 года и будет иметь OpenJDK 8 .
Майк Миллер
8
Это сентябрь 2016 года, и Ubuntu 14.04 LTS будет по-прежнему поддерживаться до 2019 года ... и много мест займет много времени, чтобы принять 16.04 из-за более масштабных изменений (например, systemd), так что все еще разочаровывает java 8, это нелегко установить через apt 14.04 :(
geerlingguy
34

Примечание. Это будет работать только с 14.10 или более поздней версией :

1 год с опозданием, но, как и сегодня, он работает, как и ожидалось, с apt-get.

Для установки JDK:

$ sudo apt-get install openjdk-8-jdk

Для установки JRE:

$ sudo apt-get install openjdk-8-jre

Как установить JDK по умолчанию

Самый быстрый способ

Запустите $ sudo update-alternatives --config javaи введите номер, для которого JDK использовать по вашему выбору.

Второй способ

Список доступных JDK:

$ update-java-alternatives -l
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64

Теперь, чтобы скопировать и вставить местоположение Open JDK 8, чтобы соответствовать команде ниже:

$ sudo update-java-alternatives -s /usr/lib/jvm/java-1.8.0-openjdk-amd64
caraca
источник
3
Я по-прежнему вижу только JDK 6 и 7, но не openjdk-8-jdk в моем Linux 14.04 после обновления sudo apt-get. Вы добавили какой-то специальный репозиторий? У меня есть надежные обратные порты.
akauppi
2
Я думаю, что вы работаете 14.10 или 15.04, не так ли?
akauppi
1
Я не могу воспроизвести на 14.04 LTS. Пожалуйста, подтвердите, что это версия.
Торбьерн Равн Андерсен
1
@akauppi ты прав !! Я бегу 14.10. Извините за неудобства, я должен удалить свой ответ?
Карака
1
Я бы не хотел, чтобы он был удален - для некоторых использование 14.10 вместо 14.04 может быть очень хорошей альтернативой.
akauppi
22

Вот что я использую для настройки Oracle Java 7 и Java 8 [примечание: не OpenJDK] с нуля на Ubuntu 14.04 LTS:

apt-get -y -q update
apt-get -y -q upgrade
apt-get -y -q install software-properties-common htop
add-apt-repository ppa:webupd8team/java
apt-get -y -q update
echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections
echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections
apt-get -y -q install oracle-java8-installer
apt-get -y -q install oracle-java7-installer
update-java-alternatives -s java-8-oracle

Это без присмотра и подходит для включения в блок обеспечения Vagrant; У меня есть суть с более подробной информацией: https://gist.github.com/tinkerware/cf0c47bb69bf42c2d740

РЕДАКТИРОВАТЬ: Это автоматически примет лицензию Oracle для JDK; убедитесь, что вы в порядке с этим, прежде чем запускать его.

Cagatay
источник
1
Выглядит неплохо. Но отсутствует та часть, где вы получаете root-доступ. Все еще хороший ответ.
MadMike
1
Правильно; Я использую это с Vagrant, который настраивает vagrantпользователя без пароля sudo.
Кагатай
5
Это Oracle Java, а не OpenJDK Java, о котором шла речь. Также обратите внимание, что эхо-линии распространяют вопрос о принятии лицензии от установщика.
Торбьерн Равн Андерсен
3
@ ThorbjørnRavnAndersen Да, я заметил, что вопрос был об OpenJDK; Я специально сказал, что мой метод для установки Oracle Java. Вы можете утверждать, что это не связано, но я думаю, что стоит отметить альтернативу, которая все еще дает вам среду выполнения, которая может запускать Java 7/8 на 14.04 LTS. «Обход» вопроса о принятии лицензии - интересный выбор слова; Я бы сказал, что нужно прочитать лицензию Oracle перед запуском скрипта, который автоматизирует принятие во время установки.
Кагатай
3
Спасибо @Cagatay !! этот ответ был очень полезен для меня, я искал установку Java 8 с использованием Vagrant.
Социр
14

Начиная с 2017-08-08 я обнаружил, что этот вопрос и его ответы стали немного ошеломляющими, чтобы разобраться в проблеме, поэтому я суммировал выводы в этом ответе.

Очень короткий ответ: OpenJDK 8 по состоянию на 2017-08-08 официально не доступен для Ubuntu 14.04 .

Однако есть много вариантов:

  • Обновите до новой версии Ubuntu. OpenJDK 8 доступен с 14.10 и далее. (OpenJDK 9 с 16.04 LTS и далее, OpenJDK 11 с 18.04 LTS и далее)
  • Загрузите и установите Oracle Java (не OpenJDK) с http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html вручную в виде файла tar.gz, который нужно просто распаковать и иметь лицензия, принятая перед binкаталогом, может быть добавлена ​​в вашу $PATHпеременную. Вы также можете использовать сторонний PPA. Обратите внимание, что Oracle Java, по-видимому, предназначен только для платных клиентов в обозримом будущем (около Java 11).
  • Загрузите OpenJDK 8, используя сторонний PPA.
  • Загрузите сертифицированную для Azul сборку OpenJDK 8 с http://www.azul.com/downloads/zulu/zulu-linux/ (DEB)
  • Скомпилируйте исходный код и установите его самостоятельно.

Смотрите другие ответы для деталей.

Обратите внимание, что личные архивы пакетов (PPA) обычно создаются отдельными лицами на добровольной основе. Содержимое может быть устаревшим или уйти без предупреждения.

Лично я бы рекомендовал обновить Ubuntu до 18.04 LTS или, если это невозможно, загрузить сборку Azul.


Примечание. Если вам все еще нужен OpenJDK 8, перенесенный на 14.04, проголосуйте за эту ошибку, войдя в систему и нажав «Влияет ли это на вас» вверху: https://bugs.launchpad.net/ubuntu/+source/openjdk-8/ + ошибка / 1368094

Турбьерн Равн Андерсен
источник
5

Примечание. С 22 апреля 2016 года пакеты для Vivid были удалены, увы. Новость на packages.ubuntu.com: «Отрази релиз xenial, добавь яккеты, убери яркий». Обход этого ответа умный, но больше не применим в текущей ситуации. По состоянию на 6 января 2017 года на верных package.ubuntu.com/trusty-backports/java еще нет бэкпорта для java 8. Пожалуйста, измените, как изменения применяются.


Смотрите ответ с официального сайта Android

https://source.android.com/source/initializing.html

Нет доступных поддерживаемых пакетов OpenJDK 8 для Ubuntu 14.04. Пакеты Ubuntu 15.04 OpenJDK 8 были успешно использованы с Ubuntu 14.04. Было обнаружено, что более новые версии пакетов (например, версии 15.10, 16.04) не работают 14.04, используя приведенные ниже инструкции.

Загрузите пакеты .deb для вашей архитектуры с http://packages.ubuntu.com/vivid/openjdk-8-jdk :
openjdk-8-jre-headless
openjdk-8-jre
openjdk-8-jdk

Помните, что вы можете получить архитектуру для вашей машины с:

$ uname -m    

x86_64 представляет 64-битную (amd64) архитектуру ядра Linux, а i386 / i486 / i586 / i686 представляет 32-битную (i386) систему.

При желании подтвердите контрольные суммы загруженных файлов, используя информацию, найденную на http://packages.ubuntu.com/vivid/openjdk-8-jdk .

Например, с помощью инструмента sha256sum:

$ sha256sum {package file}    

Установите пакеты:

$ sudo apt-get update    

Запустите dpkg для каждого загруженного вами файла .deb. Это может привести к ошибкам из-за отсутствия зависимостей:

$ sudo dpkg -i {downloaded.deb file}    

Чтобы исправить отсутствующие зависимости:

$ sudo apt-get -f install    
Бен Чен
источник
4

Я только что проголосовал здесь, и теперь мы - 733 человека, которым мы небезразличны для переноса openjdk-8 на ubuntu-14.04.

Я обнаружил, что этот репозиторий PPA довольно актуален

и, надеюсь, многообещающе !?

и это сработало для меня. Мне удалось установить openjdk-8-jdk на ubuntu-14.04 с помощью следующих команд:

sudo add-apt-repository ppa:jonathonf/openjdk
sudo apt-get update
sudo apt-get install openjdk-8-jdk

и вот мой java -versionвывод:

openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-1~14.04.york0-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)

и вот мой uname -aвывод:

Linux mars1 4.4.0-75-generic #96~14.04.1-Ubuntu SMP Thu Apr 20 11:06:30 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

и вот мой lsb_release -aвывод:

Distributor ID: Ubuntu
Description:    Ubuntu 14.04.5 LTS
Release:        14.04
Codename:       trusty

Мой провайдер виртуальных хост-серверов говорит мне, что они поддерживают только Ubuntu-14.04, и я предполагаю, что они хотят продолжать в том же духе до 2019 года! поэтому, пожалуйста, дайте мне знать, если вы знаете какой-нибудь лучший способ использовать openjdk-8 на Ubuntu-14.04?

Спасибо!

Сид Морад
источник
Я бы порекомендовал использовать Azul Zulu. azul.com/downloads/zulu
Торбьерн Равн Андерсен
Я также должен был выполнить следующее, чтобы заставить это работать: sudo update-java-alternatives --jre --set java-1.8.0-openjdk-amd64иsudo update-java-alternatives --jre-headless --set java-1.8.0-openjdk-amd64
чемпион
2

Менеджер пакетов Nix также поддерживает бинарные пакеты OpenJDK 8 для Ubuntu, что означает, что вы можете получить работающий компилятор Java 8 менее чем за пять минут до начала (конечно, с быстрым подключением к Интернету).

Шаги:

  1. Установите менеджер пакетов Nix ( https://www.domenkozar.com/2014/01/02/getting-started-with-nix-package-manager/ ):$ bash <(curl https://nixos.org/nix/install)

  2. Запустите оболочку с одной строкой, которую Nix сообщит вам в конце установки: $ . ~/.nix-profile/etc/profile.d/nix.sh

  3. Установите пакет OpenJDK Nix: $ nix-env -i openjdk

  4. Проверьте javac:$ javac -version

Вот и все. О, и вы захотите убедиться, что однострочник из шага 2 в вашем ~/.bashrc. Это скажет Nix правильно связать ваши установленные пакеты (поскольку он хранит реальные файлы в нестандартных каталогах).

Yawar
источник
1
Из любопытства - зачем вам нужен дополнительный менеджер пакетов помимо apt-get?
Торбьерн Равн Андерсен
2
@ ThorbjørnRavnAndersen - конкретная причина заключается в том, чтобы быстро получить OpenJDK 8 с минимальными затратами, а общая причина в том, что Nix является революционным улучшением по сравнению с apt-get и другими более старыми менеджерами пакетов.
Явар
Я спрашиваю в общем случае - не для OpenJDK специально. Должны быть очень веские причины для введения нового менеджера пакетов, чтобы перевесить неиспользование существующей экосистемы, что я с трудом вижу.
Турбьёрн Равн Андерсен
1
@ ThorbjørnRavnAndersen - есть очень веские причины рекомендовать Nix в общем случае. Как я уже говорил, это революционное улучшение. По шкале мерзавца над свн. Проверьте infoq.com/articles/configuration-management-with-nix для получения дополнительной информации.
Явар
2

Я получаю OpenJDK 8 из официальных репозиториев Debian, а не какой-то случайный PPA. Вот как я это сделал:

sudo apt-get install debian-keyring debian-archive-keyring

Сделать /etc/apt/sources.list.d/debian-jessie-backports.list:

deb http://<httpredir>.debian.org/debian/ jessie-backports main

где вы меняете <httpredir>с префиксом для близкого зеркала (см. https://www.debian.org/mirror/list )

Сделать /etc/apt/preferences.d/debian-jessie-backports:

Package: *
Pin: release o=Debian,a=jessie-backports
Pin-Priority: -200

Затем, наконец, выполните установку:

sudo apt-get update
sudo apt-get -t jessie-backports install openjdk-8-jdk
Ханс-Кристоф Штайнер
источник
Этот ответ не работает для меня. openjdk-8-jdkхочет, openjdk-8-jreчто хочет libjpeg62-turbo. В соответствии с aptэтим последний вариант «не устанавливается» или более подробно «недоступен, но упоминается другим пакетом. Это может означать, что пакет отсутствует, устарел или доступен только из другого источника» - таким образом, нет из репозиториев у меня есть.
Погоня
1

На самом деле также легко собрать Java 8 непосредственно из источников ... Звучит страшно? Это действительно на удивление легко и серьезно буквально занимает около 15 минут, используя https://github.com/hgomez/obuildfactory/ , как я описал на http://blog2.vorburger.ch/2014/06/build- свой собственный JDK-на-home.html

vorburger
источник
1
Строительство это одно. Как насчет TCK?
Турбьёрн Равн Андерсен
1
@ ThorbjørnRavnAndersen Понятия не имею. Для отдельного конечного пользователя самостоятельное построение уже полезно ИМХО. Что касается подготовки тщательно протестированной упаковки, то это, вероятно, другая история ... Боюсь, я не знаю ничего, кроме вас. Я просто осмотрелся и нашел openjdk.java.net/groups/conformance/JckAccess , вы видели это?
vorburger
1

Обновление от 11 марта 2016 года, запустите их как root:

apt-get update
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DA1A4A13543B466853BAF164EB9B1D8886F44E2A
touch /etc/apt/sources.list.d/openjdk.list
echo "deb http://ppa.launchpad.net/openjdk-r/ppa/ubuntu trusty main " >>/etc/apt/sources.list.d/openjdk.list
echo "deb-src http://ppa.launchpad.net/openjdk-r/ppa/ubuntu trusty main" >>/etc/apt/sources.list.d/openjdk.list
apt-get update
apt-get -y install openjdk-8-jdk
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
echo "$JAVA_HOME"
Чжан Лэй
источник
2
Первая строка не нужна. Следующие 4 строки эквивалентны add-apt-repository ppa:openjdk-r/ppa. Этот ответ также является дубликатом старых.
Пол Стелиан
1
В итоге (по состоянию на 2017-05-02), это то, что работает для меня. sudo add-apt-repository -y ppa:openjdk-r/ppa; sudo apt-get update; sudo apt-get install -y openjdk-8-jdk
Цунхсинг Дэвид Вонг