Jak zainstalować OpenJDK 8 na 14.04 LTS?


306

Java 8 jest teraz dostępna zgodnie z http://openjdk.java.net/projects/jdk8/ , ale http://openjdk.java.net/install/ jeszcze nie wspomina, jak zainstalować OpenJDK 8 (nie Oracle Java) na Wsparcie długoterminowe Ubuntu 14.04. (W przypadku wersji 14.10 i nowszych po prostu uruchom apt-get install openjdk-8-jdk)

Jak i kiedy można to zrobić?

(2017-08-08: Bardzo krótka odpowiedź to: OpenJDK 8 z dnia 2017-08-08 nie jest oficjalnie dostępny w oficjalnych repozytoriach jako pakiet APT dla Ubuntu 14.04. Zobacz pełne podsumowanie w tej odpowiedzi )

Uwaga: na razie będziemy używać Oracle Java - optymalnym rozwiązaniem dla mnie jest jednak OpenJDK z repozytoriów Ubuntu, dopóki Oracle Java nie będzie dostępna bezpośrednio i bez wysiłku z repozytoriów Ubuntu.



1
Musisz go skompilować samodzielnie. Oto jak: github.com/hgomez/obuildfactory/wiki/… Zmień nazwę pliku, aby pasowała do wersji 8 ;-)
Rinzwind

2
Azul zaczął dostarczać kompilacje OpenJDK pod nazwą „Zulu”, które można pobierać, rozpakowywać i używać automatycznie. (Zarabiają pieniądze na wsparciu). azulsystems.com/products/zulu/downloads
Thorbjørn Ravn Andersen

1
Warto zauważyć, że ten sam ppa, na którym hostowany jest apt-fast for trusty ppa:saiarcot895/myppa, ma wersję openjdk-8, która działa. wzruszenie ramionami
ThorSummoner,

W miarę upływu czasu wydaje się, że najprostszym rozwiązaniem jest po prostu aktualizacja 16.04 LTS, jeśli jest dostępna.
Thorbjørn Ravn Andersen

Odpowiedzi:


277

Możesz to zrobić dla;

Ostatnia aktualizacja

JDK

sudo apt-get install openjdk-8-jdk

JRE

sudo apt-get install openjdk-8-jre

Stara aktualizacja

Znalazłem dwa repozytorium, ale nie polecam

  • Kompilacje OpenJDK (wszystkie archiwa)

    ppa:openjdk-r/ppa
  • Backport OpenJDK 8 dla niezawodnego

    ppa:jochenkemnade/openjdk-8

Wiadomość oryginalna

Jeśli naprawdę chcesz używać OpenJDK, musisz skompilować ze źródła. Nadal nie ma PPA dla OpenJDK.

Wniosek został złożony na https://bugs.launchpad.net/ubuntu/+bug/1297065

Polecam użyć instalatora Webup8 Oracle Java8

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

Aby automatycznie skonfigurować zmienne środowiskowe Java 8

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

Sprawdź to

java -version

Musisz więc poczekać na użycie OpenJDK8


8
@JohnMerlino zgaduję, że PPA pozwala na automatyczne aktualizacje po wydaniu nowych wersji.
Thorbjørn Ravn Andersen

7
openjdk-8 jest teraz w wersji Utopic. bugs.launchpad.net/ubuntu/+source/openjdk-8/+bug/1341628 został podniesiony do wersji backport do 14.04 w wersji LTS:
Thorbjørn Ravn Andersen

56
Dlaczego nowa edycja? Wydaje się, że wciąż nie ma go w repozytorium 14.04 i sudo apt-get install openjdk-8-jdkprzynajmniej nie działa dla mnie.
Xji,

17
Od 11.01.2016 r. Nieoficjalne PPA Ubuntu są nadal potrzebne, ponieważ OpenJDK 8 nie wylądował jeszcze w backportach. Nie uważam tego za odpowiedź na moje pytanie, chociaż wydaje się, że inni tak.
Thorbjørn Ravn Andersen

8
Ta odpowiedź jest bardzo myląca, ponieważ jest niekompletna, mówi, że nie zaleca wspomnianego PPA, ale bez niego nie zadziała.
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
To repozytorium jest datowane; na dzień dzisiejszy najnowsza wersja openjdk 1.8 to 66. Wersja dostępna w tym repozytorium to 45.
mattm

Nie udało się pobrać ppa.launchpad.net/openjdk-r/ppa/ubuntu/pool/main/o/openjdk-8/... 502 apt-cacher: błąd libcurl: Błąd podczas odbierania danych od urządzenia równorzędnego
Rajesh Hatwar

1
To są prawidłowe minimalne kroki. 4 i 5 są opcjonalne i prawdopodobnie nie są wymagane.
Air

Nie działa dla Ubuntu 14.04E: Package 'openjdk-8-jdk' has no installation candidate
Naive

To działało dla mnie podczas aktualizacji Jenkins (nowsza wersja wymagała Java8, mój system miał zainstalowaną tylko Java7). Warto zauważyć, że czwarta linia miała kluczowe znaczenie dla prawidłowego zachowania Jenkinsa; dopóki go nie uruchomiłem, dostawałem Jenkins requires Java8 or later, but you are running 1.7.0_121-b00 from /usr/lib/jvm/java-7-openjdk-amd64/jre. Poproś o głos ... Dałbym ci więcej, gdybym mógł.
Doktor J

62

OpenJDK 8 został wydany w marcu 2014 roku. W chwili zadawania tego pytania w oficjalnych repozytoriach Ubuntu nie ma żadnych pakietów OpenJDK 8 dla żadnej wersji Ubuntu. Będą „wkrótce dostępne”, jak mówi strona projektu JDK 8 , w celu zdefiniowania wkrótce.

Po pierwsze, pakiety OpenJDK 8 znajdą się w wersji rozwojowej Ubuntu. Może się to zdarzyć podczas cyklu rozwojowego 14.10, ale o ile wiem, nie ma ustalonego harmonogramu. Niektóre pakiety podglądowe zostały zbudowane i są dostępne do testowania, zobacz ogłoszenie na listach dyskusyjnych debian-java i Ubuntu openjdk . W pewnym momencie pakiety te zostaną przesłane do repozytoriów programistycznych Debian i Ubuntu.

Gdy OpenJDK 8 będzie w wersji rozwojowej Ubuntu, może być możliwe zażądanie przeniesienia go do wersji 14.04. Pamiętaj, że nigdy nie będzie on dostępny w głównym trustyrepozytorium, ale jeśli go użyjesz trusty-backports, może on zostać w pewnym momencie zainstalowany. Przeczytaj o procesie żądania backportów w Ubuntu tutaj .


4
Próbowałem odpowiedzieć na twoje pytanie „jak i kiedy” z ograniczeniami, które wydajesz się chcieć: muszą pochodzić z oficjalnych repozytoriów, muszą być OpenJDK i muszą być wersją 14.04 LTS.
Mike Miller

30
Jest luty 2016, a java 8 nadal nie jest dostępna na Ubuntu 14.04 LTS. To jest rozczarowujące.
Bhavin Doshi

2
Jest kwiecień 2016, wciąż nie ma 8 Java ...
Stephan Henningsen

3
Ubuntu 16.04 ukaże się w kwietniu 2016 roku, będzie miał OpenJDK 8 .
Mike Miller,

8
Jest wrzesień 2016, a Ubuntu 14.04 LTS będzie nadal obsługiwany do 2019 roku ... a wiele miejsc zajmie dużo czasu, aby przyjąć 16.04 ze względu na zmiany na większą skalę (np. Systemd), więc wciąż rozczarowuje java 8 nie jest łatwo zainstaluj przez apt w dniu 14.04 :(
geerlingguy,

34

Uwaga - będzie to działać tylko z wersją 14.10 lub nowszą :

Spóźnia się o 1 rok, ale jak dziś działa z apt-get.

Aby zainstalować JDK:

$ sudo apt-get install openjdk-8-jdk

Aby zainstalować środowisko JRE:

$ sudo apt-get install openjdk-8-jre

Jak ustawić domyślny JDK

Najszybsza droga

Uruchom $ sudo update-alternatives --config javai wprowadź numer, dla którego JDK ma korzystać z twojego wyboru.

Drugi sposób

Lista dostępnych 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

Teraz, aby skopiować i wkleić lokalizację Open JDK 8, aby pasowała do polecenia poniżej:

$ sudo update-java-alternatives -s /usr/lib/jvm/java-1.8.0-openjdk-amd64

3
Nadal widzę tylko JDK 6 i 7, bez openjdk-8-jdk na moim Linuxie 14.04, po aktualizacji sudo apt-get. Czy dodałeś jakieś specjalne repozytorium? Mam włączone zaufane backporty.
akauppi,

2
Myślę, że masz 14.10 lub 15.04, prawda?
akauppi,

1
Nie mogę się rozmnażać w dniu 14.04 LTS. Potwierdź, że to jest wersja.
Thorbjørn Ravn Andersen

1
@akauppi masz rację !! Korzystam z 14.10. Przepraszam za niedogodności, czy powinienem usunąć swoją odpowiedź?
caraca

1
Nie chciałbym tego usuwać - dla niektórych użycie 14.10 zamiast 14.04 może być doskonałą alternatywą.
akauppi,

22

Oto, czego używam do skonfigurowania Oracle Java 7 i Java 8 [uwaga: nie OpenJDK] od zera na 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

Jest to nienadzorowane i nadaje się do włączenia do bloku Vagrant; Mam sedno z bardziej szczegółowymi informacjami: https://gist.github.com/tinkerware/cf0c47bb69bf42c2d740

EDYCJA: To automatycznie zaakceptuje licencję Oracle na JDK; upewnij się, że wszystko w porządku przed uruchomieniem.


1
Wygląda dobrze. Ale brakuje mu części, w której uzyskujesz dostęp do roota. Wciąż miła odpowiedź.
MadMike,

1
Dobrze; Używam tego z Vagrant, który konfiguruje vagrantużytkownika bez hasła sudo.
Cagatay,

5
Jest Oracle Java, nie OpenJDK Java, który właśnie pytanie chodzi. Należy również pamiętać, że linie echa stanowią odpowiedź na pytanie o akceptację licencji od instalatora.
Thorbjørn Ravn Andersen

3
@ ThorbjørnRavnAndersen Tak, zauważyłem, że pytanie dotyczyło OpenJDK; W szczególności powiedziałem, że moją metodą jest instalacja Oracle Java. Możesz argumentować, że nie jest to powiązane, ale myślę, że warto zauważyć alternatywę, która nadal zapewnia środowisko wykonawcze, w którym można uruchomić Javę 7/8 w wersji 14.04 LTS. „Obejście” pytania o akceptację licencji jest interesującym wyborem; Powiedziałbym, że należy przeczytać licencję Oracle przed uruchomieniem skryptu, który automatyzuje akceptację podczas instalacji.
Cagatay

3
Dzięki @Cagatay !! ta odpowiedź była dla mnie bardzo przydatna, szukałem instalacji Java 8 przy użyciu Vagrant.
Sotsir,

14

W dniu 2017-08-08 odkryłem, że to pytanie i jego odpowiedzi stały się nieco przytłaczające, aby zagłębić się w zrozumienie problemu, dlatego podsumowałem ustalenia w tej odpowiedzi.

Bardzo krótka odpowiedź jest taka, że OpenJDK 8 od 2017-08-08 nie jest oficjalnie dostępny dla Ubuntu 14.04 .

Istnieje jednak wiele dostępnych opcji:

  • Uaktualnij do nowszej wersji Ubuntu. OpenJDK 8 jest dostępny od 14.10 i późniejszych. (OpenJDK 9 od 16.04 LTS wzwyż, OpenJDK 11 od 18.04 LTS wzwyż)
  • Pobierz i zainstaluj Oracle Java (nie OpenJDK) ze strony http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html ręcznie jako plik tar.gz, który po prostu musi zostać rozpakowany i mieć licencja zaakceptowana przed dodaniem binkatalogu do $PATHzmiennej. Możesz również zdecydować się na korzystanie z umowy PPA innej firmy. Należy pamiętać, że Oracle Java wydaje się być przeznaczona wyłącznie do płacenia klientom w dającej się przewidzieć przyszłości (około Java 11).
  • Pobierz OpenJDK 8 przy użyciu PPA innej firmy.
  • Pobierz certyfikowaną przez Azul wersję OpenJDK 8 ze strony http://www.azul.com/downloads/zulu/zulu-linux/ (DEB)
  • Skompiluj źródło i zainstaluj je samodzielnie.

Zobacz inne odpowiedzi, aby uzyskać szczegółowe informacje.

Pamiętaj, że osobiste archiwa paczek (PPA) są zwykle tworzone przez osoby na zasadzie dobrowolności. Zawartość może być nieaktualna lub zniknąć bez ostrzeżenia.

Osobiście polecam uaktualnienie Ubuntu do 18.04 LTS lub, jeśli to niemożliwe, pobranie kompilacji Azul.


Uwaga: jeśli nadal potrzebujesz przeniesienia OpenJDK 8 do wersji 14.04, głosuj na ten błąd, logując się i klikając „Czy to dotyczy ciebie” u góry: https://bugs.launchpad.net/ubuntu/+source/openjdk-8/ + błąd / 1368094


5

Uwaga Od 22 kwietnia 2016 r. Pakiety dla Vivid zostały usunięte, niestety. Nowość w pakietach.ubuntu.com: „Odzwierciedla wydanie Xenial, dodaje yakkety, usuwa żywe”. Obejście tej odpowiedzi jest sprytne, ale nie ma już zastosowania w obecnej sytuacji. Od 6 stycznia 2017 r. Nie ma jeszcze backportu dla java 8 na zaufanych pakietach.ubuntu.com/trusty-backports/java. Edytuj zgodnie z obowiązującymi zmianami.


Zobacz odpowiedź z oficjalnej strony Androida

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

Brak dostępnych obsługiwanych pakietów OpenJDK 8 dla Ubuntu 14.04. Pakiety OpenJDK 8 Ubuntu 15.04 zostały z powodzeniem wykorzystane wraz z Ubuntu 14.04. Nowsze wersje pakietów (np. 15.10, 16.04) okazały się nie działać 14.04, postępując zgodnie z instrukcjami poniżej.

Pobierz pakiety .deb dla swojej architektury ze strony http://packages.ubuntu.com/vivid/openjdk-8-jdk :
openjdk-8-jre-headless
openjdk-8-jre
openjdk-8-jdk

Pamiętaj, że możesz uzyskać architekturę swojego komputera dzięki:

$ uname -m    

x86_64 reprezentuje 64-bitową (amd64) architekturę jądra Linux, a i386 / i486 / i586 / i686 reprezentuje system 32-bitowy (i386).

Opcjonalnie potwierdź sumy kontrolne pobranych plików, korzystając z informacji znajdujących się na stronie http://packages.ubuntu.com/vivid/openjdk-8-jdk .

Na przykład za pomocą narzędzia sha256sum:

$ sha256sum {package file}    

Zainstaluj pakiety:

$ sudo apt-get update    

Uruchom dpkg dla każdego pobranego pliku .deb. Może powodować błędy z powodu brakujących zależności:

$ sudo dpkg -i {downloaded.deb file}    

Aby naprawić brakujące zależności:

$ sudo apt-get -f install    

4

Właśnie głosowałem tutaj i teraz jesteśmy 733 osobami, którym zależy nam na przeniesieniu openjdk-8 do Ubuntu-14.04.

Odkryłem, że to repozytorium PPA jest dość aktualne

i mam nadzieję, że obiecujące !?

i zadziałało dla mnie. Udało mi się zainstalować openjdk-8-jdk na ubuntu-14.04 za pomocą następujących poleceń:

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

a oto mój java -versionwynik:

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)

a oto mój uname -awynik:

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

a oto mój lsb_release -awynik:

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

Mój wirtualny host-serwer-dostawca mówi mi, że zapewnia wsparcie tylko dla Ubuntu-14.04 i domyślam się, że chcą tak dalej do 2019 roku! więc proszę dać mi znać, jeśli znasz lepszy sposób na openjdk-8 na Ubuntu-14.04?

Dzięki!


Poleciłbym użycie Azul Zulu. azul.com/downloads/zulu
Thorbjørn Ravn Andersen

Musiałem także uruchomić następujące czynności: sudo update-java-alternatives --jre --set java-1.8.0-openjdk-amd64isudo update-java-alternatives --jre-headless --set java-1.8.0-openjdk-amd64
mistrz

2

Menedżer pakietów Nix utrzymuje również pakiety binarne OpenJDK 8 dla Ubuntu, co oznacza, że ​​możesz uzyskać działający kompilator Java 8 w mniej niż pięć minut, aby zakończyć (oczywiście z szybkim połączeniem internetowym).

Kroki są następujące:

  1. Zainstaluj menedżera pakietów Nix ( https://www.domenkozar.com/2014/01/02/getting-started-with-nix-package-manager/ ):$ bash <(curl https://nixos.org/nix/install)

  2. Uruchom powłokę jednowierszową, którą Nix powie Ci na koniec instalacji: $ . ~/.nix-profile/etc/profile.d/nix.sh

  3. Zainstaluj pakiet OpenJDK Nix: $ nix-env -i openjdk

  4. Sprawdź javac:$ javac -version

Otóż ​​to. Och, a będziesz musiał upewnić się, że umieściłeś w jednym linku z kroku 2 ~/.bashrc. To powie Nixowi prawidłowe połączenie zainstalowanych pakietów (ponieważ zachowuje rzeczywiste pliki w niestandardowych katalogach).


1
Z ciekawości - dlaczego miałbyś chcieć dodatkowego menedżera pakietów oprócz apt-get?
Thorbjørn Ravn Andersen

2
@ ThorbjørnRavnAndersen - konkretnym powodem jest szybkie uzyskanie OpenJDK 8 przy minimalnym bólu, a ogólny powód jest taki, że Nix jest rewolucyjnym ulepszeniem w stosunku do apt-get i innych starszych menedżerów pakietów.
Yawar,

Pytam w ogólnym przypadku - nie dotyczy to konkretnie OpenJDK. Muszą istnieć bardzo poważne powody, dla których warto wprowadzić nowego menedżera pakietów, aby przeważać nad nieużywaniem istniejącego ekosystemu.
Thorbjørn Ravn Andersen

1
@ ThorbjørnRavnAndersen - istnieją bardzo dobre powody, aby polecać Nix w ogólnym przypadku. Jak wspomniałem, jest to rewolucyjne ulepszenie. W skali git ponad svn. Sprawdź infoq.com/articles/configuration-management-with-nix, aby uzyskać więcej.
Yawar,

2

Dostaję OpenJDK 8 z oficjalnych repozytoriów Debiana, a nie z przypadkowego PPA. Oto jak to zrobiłem:

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

Wykonaj /etc/apt/sources.list.d/debian-jessie-backports.list:

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

gdzie zmieniasz <httpredir>z prefiksem dla bliskiego lustra (patrz https://www.debian.org/mirror/list )

Wykonaj /etc/apt/preferences.d/debian-jessie-backports:

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

Następnie w końcu wykonaj instalację:

sudo apt-get update
sudo apt-get -t jessie-backports install openjdk-8-jdk

Ta odpowiedź nie działa dla mnie. openjdk-8-jdkchce openjdk-8-jreto chce libjpeg62-turbo. Zgodnie z apttym ostatnim „nie można go zainstalować” lub bardziej dosłownie „nie jest dostępny, ale odnosi się do niego inny pakiet. Może to oznaczać, że brakuje pakietu, został on przestarzały lub jest dostępny tylko z innego źródła” - dlatego nie z repozytoriów, które mam.
Pogoń

1

Łatwo jest też zbudować Javę 8 bezpośrednio ze źródeł ... Brzmi przerażająco? To naprawdę zaskakująco łatwe i poważnie zajmuje dosłownie około 15 minut, używając https://github.com/hgomez/obuildfactory/ , jak opisałem na http://blog2.vorburger.ch/2014/06/build- twój-własny-jdk-at-home.html


1
Budowanie to jedno. Co z TCK?
Thorbjørn Ravn Andersen

1
@ ThorbjørnRavnAndersen Nie mam pojęcia. Dla indywidualnego użytkownika końcowego samodzielne budowanie jest już przydatne IMHO. W rzeczywistości przygotowanie dokładnie przetestowanego pakietu to prawdopodobnie inna historia ... Obawiam się, że nie wiem nic więcej niż ty. Właśnie się rozejrzałem i znalazłem openjdk.java.net/groups/conformance/JckAccess , widziałeś to?
vorburger

1

Zaktualizuj 11 marca 2016, uruchom jako 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
Pierwsza linia nie jest potrzebna. Następne 4 wiersze są równoważne add-apt-repository ppa:openjdk-r/ppa. Ta odpowiedź jest także duplikatem starszych.
Paul Stelian,

1
Podsumowując (stan na 05.05.2017), to działa dla mnie. sudo add-apt-repository -y ppa:openjdk-r/ppa; sudo apt-get update; sudo apt-get install -y openjdk-8-jdk
Tzunghsing David Wong
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.