Wie installiere ich OpenJDK 8 auf 14.04 LTS?


306

Java 8 ist jetzt laut http://openjdk.java.net/projects/jdk8/ verfügbar , aber http://openjdk.java.net/install/ erwähnt noch nicht, wie OpenJDK 8 (nicht Oracle Java) auf installiert wird Ubuntu 14.04 Langzeitunterstützung. (Für 14.10 und später einfach ausführen apt-get install openjdk-8-jdk)

Wie und wann geht das?

(08.08.2017: Die sehr kurze Antwort lautet: OpenJDK 8 vom 08.08.2017 ist nicht offiziell im offiziellen Repository als APT-Paket für Ubuntu 14.04 verfügbar. Siehe die vollständige Zusammenfassung in dieser Antwort. )

Hinweis: Derzeit werden wir Oracle Java verwenden - die für mich optimale Lösung ist jedoch OpenJDK aus den Ubuntu-Repositorys, bis Oracle Java direkt und mühelos aus den Ubuntu-Repositorys verfügbar ist.



1
Sie müssen es selbst kompilieren. Hier ist, wie: github.com/hgomez/obuildfactory/wiki/… Ändern Sie den Dateinamen auf Version 8 ;-)
Rinzwind

2
Azul bietet OpenJDK-Builds unter dem Namen "Zulu" an, die automatisch heruntergeladen, entpackt und verwendet werden können. (Sie verdienen ihr Geld durch Unterstützung). azulsystems.com/products/zulu/downloads
Thorbjørn Ravn Andersen

1
Bemerkenswerterweise wird auf demselben ppa, auf dem apt-fast for trusty gehostet ist ppa:saiarcot895/myppa, eine Version von openjdk-8 ausgeführt, die funktioniert. Achselzucken
ThorSummoner

Mit der Zeit scheint es die einfachste Lösung zu sein, 16.04 LTS nach Verfügbarkeit zu erweitern.
Thorbjørn Ravn Andersen

Antworten:


277

Sie können dies für tun;

Endgültiges Update

JDK

sudo apt-get install openjdk-8-jdk

JRE

sudo apt-get install openjdk-8-jre

Altes Update

Ich habe zwei Repositorys gefunden, kann es aber nicht empfehlen

  • OpenJDK-Builds (alle Bögen)

    ppa:openjdk-r/ppa
  • OpenJDK 8 Backport für vertrauenswürdige

    ppa:jochenkemnade/openjdk-8

originale Nachricht

Wenn Sie OpenJDK wirklich verwenden möchten, müssen Sie aus dem Quellcode kompilieren . Es gibt noch kein PPA für OpenJDK.

Es wurde unter https://bugs.launchpad.net/ubuntu/+bug/1297065 angefordert

Ich empfehle Ihnen, Webup8 Oracle Java8 Installer zu verwenden

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

Automatische Einrichtung der Java 8-Umgebungsvariablen

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

prüfen Sie

java -version

Sie müssen also warten, bis Sie OpenJDK8 verwenden


8
@ JohnMerlino Ich denke, dass die PPA automatische Updates ermöglicht, wenn neue Versionen veröffentlicht werden.
Thorbjørn Ravn Andersen

7
openjdk-8 ist jetzt in Utopic. bugs.launchpad.net/ubuntu/+source/openjdk-8/+bug/1341628 wurde auf 14.04 erhöht, da es sich um LTS handelt:
Thorbjørn Ravn Andersen

56
Warum die neue Bearbeitung? Es scheint noch nicht im 14.04 Repo zu sein und sudo apt-get install openjdk-8-jdkfunktioniert zumindest bei mir nicht.
xji

17
Ab dem 11.01.2016 werden noch nicht offizielle Ubuntu-PPAs benötigt, da OpenJDK 8 noch nicht in den Backports gelandet ist. Ich halte dies nicht für eine Antwort auf meine Frage, obwohl es den Anschein hat, dass andere dies tun.
Thorbjørn Ravn Andersen

8
Diese Antwort ist sehr irreführend, da sie unvollständig ist. Sie besagt, dass die erwähnte PPA nicht empfohlen wird, aber ohne sie nicht funktioniert.
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
Dieses Repository ist datiert. Ab heute ist die neueste Version von openjdk 1.8 66. Die in diesem Repository verfügbare Version ist 45.
mattm

Fehler beim Abruf ppa.launchpad.net/openjdk-r/ppa/ubuntu/pool/main/o/openjdk-8/... 502 apt-cacher: Libcurl Fehler: Fehler , wenn Daten aus der Peer - Empfang
Rajesh Hatwar

1
Dies sind die richtigen Mindestschritte. 4 und 5 sind optional und möglicherweise nicht erforderlich.
Air

Funktioniert nicht für Ubuntu 14.04E: Package 'openjdk-8-jdk' has no installation candidate
Naive

Dies funktionierte für mich beim Upgrade von Jenkins (neuere Version benötigt Java8, auf meinem System war nur Java7 installiert). Bemerkenswerterweise war die vierte Zeile entscheidend, um Jenkins dazu zu bringen, sich richtig zu verhalten. Bis ich es laufen ließ, bekam ich immer Jenkins requires Java8 or later, but you are running 1.7.0_121-b00 from /usr/lib/jvm/java-7-openjdk-amd64/jre. Habe eine Gegenstimme ... Ich würde dir mehr geben, wenn ich könnte.
Doktor J

62

OpenJDK 8 wurde im März 2014 veröffentlicht. Zum Zeitpunkt dieser Frage gibt es keine OpenJDK 8-Pakete in den offiziellen Ubuntu-Repositories für Ubuntu-Releases. Sie "werden bald verfügbar sein", wie auf der JDK 8-Projektseite angegeben , für eine Definition von bald.

Erstens werden die OpenJDK 8-Pakete in der Ubuntu-Entwicklungsversion landen. Dies kann während des Entwicklungszyklus von 14.10 geschehen, aber meines Wissens gibt es keinen festgelegten Zeitplan. Einige Preview-Pakete wurden erstellt und stehen zum Testen zur Verfügung (siehe Ankündigung in den Mailing-Listen debian -java und Ubuntu openjdk) . Irgendwann werden diese Pakete in die Entwicklungsrepositorys von Debian und Ubuntu hochgeladen.

Sobald OpenJDK 8 in der Ubuntu-Entwicklungsversion ist, kann möglicherweise eine Rückportierung auf 14.04 angefordert werden. Beachten Sie, dass es niemals im primären trustyRepository verfügbar sein wird , aber wenn Sie es verwenden trusty-backports, kann es von dort aus irgendwann installiert werden. Weitere Informationen zum Anfordern von Backports in Ubuntu finden Sie hier .


4
Ich habe versucht, Ihre Frage "wie und wann" mit den Einschränkungen zu beantworten, die Sie zu wollen scheinen: Muss aus offiziellen Repositories stammen, muss OpenJDK sein und muss die LTS-Version 14.04 sein.
Mike Miller

30
Es ist Februar 2016 und Java 8 ist immer noch nicht auf Ubuntu 14.04 LTS verfügbar. Das ist enttäuschend.
Bhavin Doshi

2
Es ist April 2016, noch kein Java 8 ...
Stephan Henningsen

3
Ubuntu 16.04 erscheint im April 2016 und wird OpenJDK 8 haben .
Mike Miller

8
Es ist September 2016 und Ubuntu 14.04 LTS wird noch bis 2019 unterstützt ... und es wird aufgrund umfangreicher Änderungen (z. B. systemd) sehr lange dauern, bis Ubuntu 16.04 übernommen wird installiere via apt am 14.04 .:(
geerlingguy

34

Hinweis - Dies funktioniert nur mit 14.10 oder neuer :

1 Jahr zu spät, aber wie heute funktioniert es erwartungsgemäß mit apt-get.

Zur Installation von JDK:

$ sudo apt-get install openjdk-8-jdk

Zur Installation von JRE:

$ sudo apt-get install openjdk-8-jre

So legen Sie das Standard-JDK fest

Schnellste Weg

Führen Sie $ sudo update-alternatives --config javaden Befehl aus und geben Sie die Nummer ein, für die das JDK Ihrer Wahl verwendet werden soll.

Zweiter Weg

Listen Sie die verfügbaren JDKs auf:

$ 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

Kopieren Sie nun den Speicherort von Open JDK 8 und fügen Sie ihn entsprechend dem folgenden Befehl ein:

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

3
Ich sehe immer noch nur die JDKs 6 und 7, kein openjdk-8-jdk auf meinem Linux 14.04, nachdem sudo apt-get update ausgeführt wurde. Haben Sie ein spezielles Repository hinzugefügt? Ich habe Trusty-Backports aktiviert.
Akauppi

2
Ich denke, Sie laufen 14.10 oder 15.04, nicht wahr?
Akauppi

1
Ich kann am 14.04 LTS nicht reproduzieren. Bitte bestätigen Sie, dass dies die Version ist.
Thorbjørn Ravn Andersen

1
@akauppi du hast recht !! Ich laufe 14.10. Entschuldigung für die Unannehmlichkeiten, sollte ich meine Antwort entfernen?
Caraca

1
Ich würde mir nicht wünschen, dass es entfernt wird - für einige könnte die Verwendung von 14.10 anstelle von 14.04 eine perfekte Alternative sein.
Akauppi

22

Folgendes verwende ich, um Oracle Java 7 und Java 8 [Anmerkung: nicht OpenJDK] unter Ubuntu 14.04 LTS von Grund auf neu einzurichten:

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

Dies ist unbeaufsichtigt und eignet sich zur Aufnahme in einen Vagrant-Bereitstellungsblock. Ich habe eine Zusammenfassung mit mehr Details: https://gist.github.com/tinkerware/cf0c47bb69bf42c2d740

BEARBEITEN: Dies akzeptiert automatisch die Oracle-Lizenz für das JDK. Stellen Sie sicher, dass Sie damit einverstanden sind, bevor Sie es ausführen.


1
Sieht gut aus. Es fehlt jedoch der Teil, auf den Sie root-Zugriff erhalten. Immer noch schöne Antwort.
MadMike

1
Richtig; Ich benutze dies mit Vagrant, das den vagrantBenutzer mit passwortlos einrichtet sudo.
Cagatay,

5
Dies ist Oracle Java, nicht OpenJDK Java, worum es bei der Frage ging. Beachten Sie auch, dass die Echolinien die Lizenzannahmefrage des Installationsprogramms umgehen.
Thorbjørn Ravn Andersen

3
@ ThorbjørnRavnAndersen Ja, mir ist aufgefallen, dass die Frage OpenJDK betrifft. Ich sagte ausdrücklich, dass meine Methode für die Installation von Oracle Java ist. Sie können argumentieren, dass dies nicht verwandt ist, aber ich denke, es ist sinnvoll, eine Alternative zu nennen, die Ihnen immer noch eine Laufzeitumgebung bietet, die Java 7/8 auf 14.04 LTS ausführen kann. "Umgehung" der Lizenzannahmefrage ist eine interessante Wortwahl; Ich würde sagen, man sollte die Oracle-Lizenz vor dem Ausführen des Skripts lesen, was die Akzeptanz während der Installation automatisiert.
Cagatay,

3
Vielen Dank @Cagatay! Diese Antwort war sehr nützlich für mich, ich habe Java 8-Installation mit Vagrant gesucht.
Sotsir

14

Ab dem 08.08.2017 stellte ich fest, dass diese Frage und ihre Antworten ein wenig überwältigend waren, um das Problem zu verstehen. Daher habe ich die Ergebnisse in dieser Antwort zusammengefasst.

Die sehr kurze Antwort ist, dass OpenJDK 8 vom 08.08.2017 nicht offiziell für Ubuntu 14.04 verfügbar ist .

Es gibt jedoch viele Möglichkeiten:

  • Aktualisieren Sie auf eine neuere Version von Ubuntu. OpenJDK 8 ist ab 14.10 verfügbar. (OpenJDK 9 ab 16.04 LTS, OpenJDK 11 ab 18.04 LTS)
  • Laden Sie Oracle Java (nicht OpenJDK) von http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html herunter und installieren Sie es manuell als tar.gz-Datei, die nur entpackt werden muss und muss Die Lizenz, die akzeptiert wurde, bevor das binVerzeichnis zu Ihrer $PATHVariablen hinzugefügt werden kann. Sie können auch ein PPA eines Drittanbieters verwenden. Beachten Sie, dass Oracle Java in absehbarer Zukunft nur für zahlende Kunden gedacht zu sein scheint (um Java 11 herum).
  • Laden Sie OpenJDK 8 mit einem PPA eines Drittanbieters herunter.
  • Laden Sie einen Azul-zertifizierten Build von OpenJDK 8 von http://www.azul.com/downloads/zulu/zulu-linux/ (DEB) herunter.
  • Kompilieren Sie die Quelle und installieren Sie sie selbst.

Weitere Informationen finden Sie in den Antworten.

Beachten Sie, dass Personal Package Archives (PPA) normalerweise von Einzelpersonen auf freiwilliger Basis erstellt werden. Der Inhalt ist möglicherweise veraltet oder verschwindet ohne Vorwarnung.

Persönlich würde ich empfehlen, Ubuntu auf 18.04 LTS zu aktualisieren oder, falls dies nicht möglich ist, einen Azul-Build herunterzuladen.


Hinweis: Wenn Sie OpenJDK 8 weiterhin auf 14.04 zurückportieren müssen, stimmen Sie für diesen Fehler ab, indem Sie sich anmelden und oben auf "Betrifft es Sie" klicken: https://bugs.launchpad.net/ubuntu/+source/openjdk-8/ + Bug / 1368094


5

Hinweis Seit dem 22. April 2016 wurden die Pakete für Vivid leider entfernt. Nachricht in packages.ubuntu.com: "Xenial Release reflektieren, Yakkety zugeben, Vivid entfernen". Die Umgehung dieser Antwort ist clever, aber in der aktuellen Situation nicht mehr anwendbar. Ab dem 6. Januar 2017 gibt es noch keinen Backport für Java 8 auf trusty packages.ubuntu.com/trusty-backports/java. Bitte bearbeiten, da Änderungen gelten.


Siehe die Antwort von der offiziellen Android-Website

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

Es gibt keine verfügbaren unterstützten OpenJDK 8-Pakete für Ubuntu 14.04. Die Ubuntu 15.04 OpenJDK 8-Pakete wurden erfolgreich mit Ubuntu 14.04 verwendet. Es wurde festgestellt, dass neuere Paketversionen (z. B. für 15.10, 16.04) unter Verwendung der folgenden Anweisungen nicht mit 14.04 funktionieren.

Laden Sie die .deb-Pakete für Ihre Architektur von http://packages.ubuntu.com/vivid/openjdk-8-jdk
herunter : openjdk-8-jre-headless
openjdk-8-jre
openjdk-8-jdk

Denken Sie daran, dass Sie die Architektur für Ihre Maschine erhalten können mit:

$ uname -m    

x86_64 steht für eine 64-Bit-Linux-Kernel-Architektur (amd64) und i386 / i486 / i586 / i686 für ein 32-Bit-System (i386).

Überprüfen Sie optional die Prüfsummen der heruntergeladenen Dateien anhand der Informationen unter http://packages.ubuntu.com/vivid/openjdk-8-jdk .

Zum Beispiel mit dem Tool sha256sum:

$ sha256sum {package file}    

Installieren Sie die Pakete:

$ sudo apt-get update    

Führen Sie dpkg für jede heruntergeladene .deb-Datei aus. Aufgrund fehlender Abhängigkeiten können Fehler auftreten:

$ sudo dpkg -i {downloaded.deb file}    

So beheben Sie fehlende Abhängigkeiten:

$ sudo apt-get -f install    

4

Ich habe gerade hier abgestimmt und jetzt sind wir 733 Leute, denen es am Herzen liegt, openjdk-8 auf Ubuntu-14.04 zurück zu portieren.

Ich fand dieses PPA-Repository ziemlich aktuell

und hoffentlich vielversprechend !?

und es hat bei mir funktioniert. Ich konnte openjdk-8-jdk unter Ubuntu-14.04 mit den folgenden Befehlen erfolgreich installieren:

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

und hier ist meine java -versionAusgabe:

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)

und hier ist meine uname -aAusgabe:

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

und hier ist meine lsb_release -aAusgabe:

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

Mein Virtual-Host-Server-Anbieter sagt mir, dass er nur Ubuntu-14.04 unterstützt und ich vermute, dass er so bis 2019 weitermachen möchte! Bitte lassen Sie mich wissen, ob Sie einen besseren Weg kennen, um openjdk-8 auf Ubuntu-14.04 zu haben.

Vielen Dank!


Ich würde empfehlen, Azul Zulu zu verwenden. azul.com/downloads/zulu
Thorbjørn Ravn Andersen

Ich musste auch Folgendes ausführen, um es zum Laufen zu bringen: sudo update-java-alternatives --jre --set java-1.8.0-openjdk-amd64undsudo update-java-alternatives --jre-headless --set java-1.8.0-openjdk-amd64
champost

2

Der Nix-Paketmanager verwaltet auch Binärpakete von OpenJDK 8 für Ubuntu, was bedeutet, dass Sie einen funktionierenden Java 8-Compiler in weniger als fünf Minuten fertig stellen können (natürlich mit einer schnellen Internetverbindung).

Die Schritte sind:

  1. Installieren Sie den Nix-Paketmanager ( https://www.domenkozar.com/2014/01/02/getting-started-with-nix-package-manager/ ):$ bash <(curl https://nixos.org/nix/install)

  2. Führen Sie den Shell-One-Liner aus, den Nix am Ende der Installation anweist: $ . ~/.nix-profile/etc/profile.d/nix.sh

  3. Installieren Sie das OpenJDK Nix-Paket: $ nix-env -i openjdk

  4. Überprüfen Sie javac:$ javac -version

Das ist es. Oh, und Sie sollten sicherstellen, dass Sie den Einzeiler aus Schritt 2 in Ihren einfügen ~/.bashrc. Dadurch wird Nix angewiesen, die installierten Pakete ordnungsgemäß zu verknüpfen (da die tatsächlichen Dateien in nicht standardmäßigen Verzeichnissen gespeichert werden).


1
Aus Neugier - warum sollten Sie neben apt-get einen zusätzlichen Paketmanager wünschen?
Thorbjørn Ravn Andersen

2
@ ThorbjørnRavnAndersen - der spezielle Grund ist, OpenJDK 8 schnell und mit minimalen Schmerzen zu erhalten. Der allgemeine Grund ist, dass Nix eine revolutionäre Verbesserung gegenüber apt-get und anderen älteren Paketmanagern darstellt.
Yawar

Ich frage im Allgemeinen - nicht speziell für OpenJDK. Es muss sehr schwerwiegende Gründe dafür geben, einen neuen Paketmanager einzuführen, der nicht das vorhandene Ökosystem nutzt, was ich nur schwer sehe.
Thorbjørn Ravn Andersen

1
@ ThorbjørnRavnAndersen - es gibt sehr gute Gründe, Nix im allgemeinen Fall zu empfehlen. Wie gesagt, es ist eine revolutionäre Verbesserung. Auf der Skala von Git über Svn. Weitere Informationen finden Sie unter infoq.com/articles/configuration-management-with-nix .
Yawar

2

Ich bekomme OpenJDK 8 aus den offiziellen Debian-Repositories und nicht aus zufälligen PPA. So habe ich es gemacht:

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

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

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

wo Sie <httpredir>mit dem Präfix für einen Near Mirror wechseln (siehe https://www.debian.org/mirror/list )

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

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

Dann mach endlich die Installation:

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

Diese Antwort funktioniert bei mir nicht. openjdk-8-jdkwill openjdk-8-jredas will libjpeg62-turbo. Gemäß aptist „nicht installierbar“ oder mehr verbosely letzteren „ist nicht verfügbar, aber von einem anderen Paket bezeichnet Dies kann bedeuten , dass das Paket fehlt, veraltet ist oder nur aus einer anderen Quelle verfügbar“ - also nicht von den Repositories, die ich habe. Die Jagd wird zu weit, um weise zu sein
XavierStuvw

1

Es ist eigentlich auch einfach, Java 8 selbst direkt aus Quellen zu erstellen ... Klingt beängstigend? Es ist wirklich überraschend einfach und dauert mit https://github.com/hgomez/obuildfactory/ , wie ich auf http://blog2.vorburger.ch/2014/06/build- beschrieben habe, im wahrsten Sinne des Wortes ungefähr 15 Minuten. your-own-jdk-at-home.html


1
Bauen ist eine Sache. Was ist mit der TCK?
Thorbjørn Ravn Andersen

1
@ ThorbjørnRavnAndersen Ich habe keine Ahnung. Für einen einzelnen Endbenutzer ist Selfbuilding meiner Meinung nach bereits nützlich. Für die Vorbereitung eines gründlich getesteten Pakets ist es wahrscheinlich eine andere Geschichte ... Ich fürchte, ich weiß nichts mehr als Sie. Ich habe mich nur umgesehen und festgestellt, dass openjdk.java.net/groups/conformance/JckAccess. Hast du das gesehen?
Vorburger

1

Update am 11. März 2016, führe diese als root aus:

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
Die erste Zeile wird nicht benötigt. Die nächsten 4 Zeilen entsprechen add-apt-repository ppa:openjdk-r/ppa. Diese Antwort ist auch ein Duplikat älterer.
Paul Stelian

1
Zusammenfassend (Stand 02.05.2017) funktioniert dies für mich. sudo add-apt-repository -y ppa:openjdk-r/ppa; sudo apt-get update; sudo apt-get install -y openjdk-8-jdk
Tzunghsing David Wong
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.