Як встановити 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
Thorbjørn Ravn Andersen

1
Примітно, той самий ppa, який підходить для надійних ppa:saiarcot895/myppa, має версію openjdk-8, яка працює.
знизати

Із часом іде здається, що найпростішим рішенням є просто підняти 16,04 LTS, коли вони є.
Thorbjørn Ravn Andersen

Відповіді:


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, вам доведеться компілювати з джерела. Ще немає PPA для OpenJDK.

Запрошено це за адресою 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


8
@JohnMerlino, я думаю, що PPA дозволяє здійснювати автоматичне оновлення, коли виходять нові версії.
Thorbjørn Ravn Andersen

7
openjdk-8 зараз в Utopic. bugs.launchpad.net/ubuntu/+source/openjdk-8/+bug/1341628 було піднято для підтримки до 14.04, оскільки це LTS:
Thorbjørn Ravn Andersen

56
Чому нова редакція? Здається, все ще не було в репортажі 14.04 і sudo apt-get install openjdk-8-jdkне працює принаймні для мене.
xji

17
Станом на 11.01.2016 р. Неофіційні Ubuntu PPA все ще потрібні, оскільки OpenJDK 8 ще не приземлився. Я не вважаю це відповіддю на моє запитання, навіть незважаючи на це.
Thorbjørn Ravn Andersen

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: невдача при отриманні даних від однорангового
Rajesh Hatwar

1
Це правильні мінімальні кроки. 4 та 5 не є обов'язковими та, можливо, не потрібні.
Повітря

Не працює для Ubuntu 14.04E: Package 'openjdk-8-jdk' has no installation candidate
Naive

Це працювало для мене під час оновлення 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. Майте пропозицію ... Я б вам більше дав, якби міг.
Doktor J

62

OpenJDK 8 був випущений у березні 2014 року. На момент виникнення цього питання в офіційних сховищах Ubuntu жодного випуску Ubuntu немає жодних пакетів OpenJDK 8. Вони "будуть доступні незабаром", як говориться на сторінці проекту JDK 8 , для певного визначення найближчим часом.

По-перше, пакети OpenJDK 8 приземляться у версії розробки Ubuntu. Це може статися під час циклу розробки 14.10, але, наскільки я знаю, немає встановленого графіку. Деякі пакети попереднього перегляду побудовані та доступні для тестування, див. Анонс у списках розсилки debian-java та Ubuntu openjdk . В якийсь момент ці пакети будуть завантажені в сховища розробників Debian і Ubuntu.

Після того, як OpenJDK 8 знаходиться у версії для розробки Ubuntu, можливо, можна буде просити його підтримувати до 14.04. Зауважте, що він ніколи не буде доступний у первинному trustyсховищі, але якщо ви використовуєте, trusty-backportsвін може бути встановлений звідти в якийсь момент. Про процес запиту запитів на підтримку в Ubuntu читайте тут .


4
Я намагався відповісти на ваше запитання "як і коли" з обмеженнями, які, здається, ви хочете: повинні бути з офіційних сховищ, повинні бути OpenJDK і повинні бути випуском 14.04 LTS.
Майк Міллер

30
Його лютий 2016, а java 8 досі не доступний на Ubuntu 14.04 LTS. Це невтішно.
Бхавін Доші

2
Це квітень 2016 року, ще немає яви 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

3
Я все ще бачу лише JDKs 6 та 7, без openjdk-8-jdk на моєму Linux 14.04, після оновлення sudo apt-get. Ви додали якесь спеціальне сховище? У мене ввімкнені надійні опори.
akauppi

2
Я думаю, ти працюєш 14.10 чи 15.04, чи не так?
akauppi

1
Я не можу відтворити 14.04 LTS. Підтвердьте, що це версія.
Thorbjørn Ravn Andersen

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

EDIT: Це автоматично приймає ліцензію Oracle на JDK; переконайтеся, що ви добре з цим першим, перш ніж запустити його.


1
Виглядає добре. Але в ньому відсутня частина, де ви отримуєте кореневий доступ. Ще приємна відповідь.
MadMike

1
Правильно; Я використовую це з Vagrant, який налаштовує vagrantкористувача без паролів sudo.
Cagatay

5
Це Oracle Java, а не OpenJDK Java, про яке було питання. Також зауважте, що ехо-рядки обходять питання про прийняття ліцензії від інсталятора.
Thorbjørn Ravn Andersen

3
@ ThorbjørnRavnAndersen Так, я помітив, що питання стосується OpenJDK; Я спеціально сказав, що мій метод призначений для встановлення Oracle Java. Ви можете стверджувати, що це не пов’язано, але я думаю, що є значення в тому, щоб відзначити альтернативу, яка все ще отримує час виконання, який може запускати Java 7/8 14.04 LTS. "Обхід" питання про прийняття ліцензії - цікавий вибір слова; Я б сказав, що слід прочитати ліцензію Oracle перед запуском сценарію, який автоматизує прийняття під час встановлення.
Кагатай

3
Дякую @Cagatay !! ця відповідь була дуже корисною для мене, я шукав інсталяцію Java 8 за допомогою Vagrant.
Соцір

14

Станом на 08.08.2017 я виявив, що це питання та його відповіді стали трохи переважними, щоб розібратися, щоб зрозуміти проблему, тому я узагальнив висновки у цій відповіді.

Дуже коротка відповідь полягає в тому, що 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 були видалені, на жаль. Елемент новин у пакетах.ubuntu.com: "Відобразити реліз xenial, додати яккіти, видалити яскраві". Вирішення цієї відповіді розумне, але більше не застосовується в сучасній ситуації. Станом на 6 січня 2017 року поки що немає посилання на java 8 на надійних пакетах.ubuntu.com/trusty-backports/java. Відредагуйте, оскільки зміни застосовуються.


Дивіться відповідь з офіційного сайту 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
Thorbjørn Ravn Andersen

Я також повинен був виконати наступне, щоб змусити його працювати: 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
champost

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 правильно встановити встановлені пакети (оскільки він зберігає фактичні файли у нестандартних каталогах).


1
З цікавості - чому ви хочете додатково керувати пакетом, крім apt-get?
Thorbjørn Ravn Andersen

2
@ ThorbjørnRavnAndersen - конкретна причина полягає в тому, щоб швидко отримати OpenJDK 8 з мінімальними болями, і загальна причина полягає в тому, що Nix - це революційне поліпшення порівняно з apt-get та іншими старшими менеджерами пакетів.
Явар

Я прошу в загальному випадку - не для OpenJDK конкретно. Має бути дуже важких причин, щоб новий менеджер пакунків переважав над тим, щоб не використовувати існуючу екосистему, яку я важко бачу.
Thorbjørn Ravn Andersen

1
@ ThorbjørnRavnAndersen - є дуже вагомі причини рекомендувати Nix у загальному випадку. Як я вже згадував, це революційне вдосконалення. За шкалою git over svn. Перегляньте 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- your-own-jdk-at-home.html


1
Будівництво - це одне. Що з ТКК?
Thorbjørn Ravn Andersen

1
@ ThorbjørnRavnAndersen Я поняття не маю. Для індивідуального кінцевого споживача самобудування вже є корисним IMHO. Насправді готуючи ретельно перевірений пакет, це, мабуть, інша історія ... Боюся, я не знаю нічого більше, ніж ти. Я просто озирнувся і знайшов 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
Цзунсінг Девід Вонг
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.