Come installare OpenJDK 8 su 14.04 LTS?


306

Java 8 è ora disponibile secondo http://openjdk.java.net/projects/jdk8/ , ma http://openjdk.java.net/install/ non menziona ancora come installare OpenJDK 8 (non Oracle Java) su Supporto a lungo termine di Ubuntu 14.04. (Per 14.10 e versioni successive basta eseguire apt-get install openjdk-8-jdk)

Come e quando è possibile farlo?

(08-08-2017: La risposta molto breve è: OpenJDK 8 a partire dal 08-08-2017 non è ufficialmente disponibile dai repository ufficiali come pacchetto APT per Ubuntu 14.04. Vedi il riepilogo completo in questa risposta )

Nota: per ora useremo Oracle Java - la soluzione ottimale per me è, tuttavia, OpenJDK dai repository Ubuntu, fino a quando Oracle Java non sarà disponibile direttamente e senza sforzo dai repository Ubuntu.



1
Devi compilarlo da solo. Ecco come: github.com/hgomez/obuildfactory/wiki/… Modifica il nome file in modo che corrisponda alla versione 8 ;-)
Rinzwind

2
Azul ha iniziato a fornire build OpenJDK con il nome "Zulu" che può essere scaricato, decompresso e utilizzato automaticamente. (Guadagnano i loro soldi dal supporto). azulsystems.com/products/zulu/downloads
Thorbjørn Ravn Andersen

1
In particolare, lo stesso ppa su cui è ospitato apt-fast per trusty ppa:saiarcot895/myppa, ha una versione di openjdk-8 che funziona. scrollata di spalle
ThorSummoner

Col passare del tempo, sembra che la soluzione più semplice sia semplicemente aggiornare 16.04 LTS quando disponibile.
Thorbjørn Ravn Andersen,

Risposte:


277

Puoi farlo per;

Aggiornamento finale

JDK

sudo apt-get install openjdk-8-jdk

JRE

sudo apt-get install openjdk-8-jre

Vecchio aggiornamento

Ho trovato due repository ma non lo consiglio

  • Build OpenJDK (tutti gli archi)

    ppa:openjdk-r/ppa
  • OpenJDK 8 backport per fidato

    ppa:jochenkemnade/openjdk-8

messaggio originale

Se vuoi davvero usare OpenJDK, devi compilare dal sorgente. Non esiste ancora alcun PPA per OpenJDK.

È stato richiesto su https://bugs.launchpad.net/ubuntu/+bug/1297065

Ti consiglio di utilizzare Webup8 Oracle Java8 Installer

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

Per impostare automaticamente le variabili di ambiente Java 8

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

Controllalo

java -version

Quindi devi aspettare per usare OpenJDK8


8
@JohnMerlino la mia ipotesi sarebbe che il PPA consenta aggiornamenti automatici quando vengono rilasciate nuove versioni.
Thorbjørn Ravn Andersen,

7
openjdk-8 è ora in Utopico. bugs.launchpad.net/ubuntu/+source/openjdk-8/+bug/1341628 è stato portato a backport al 14.04 in quanto è LTS:
Thorbjørn Ravn Andersen

56
Perché la nuova modifica? Sembra non essere ancora nel repository 14.04 e sudo apt-get install openjdk-8-jdknon funziona almeno per me.
xji,

17
A partire dall'11-01-2016 sono ancora necessari i PPA Ubuntu non ufficiali, poiché OpenJDK 8 non è ancora atterrato nei backport. Non ritengo che questa sia una risposta alla mia domanda, anche se sembra che altri lo facciano.
Thorbjørn Ravn Andersen,

8
Questa risposta è altamente fuorviante a causa di essere incompleta, dice che non raccomanda il PPA menzionato ma non funzionerà senza di essa.
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
Questo repository è datato; ad oggi l'ultima versione di openjdk 1.8 è la 66. La versione disponibile in questo repository è la 45.
mattm

Impossibile recuperare ppa.launchpad.net/openjdk-r/ppa/ubuntu/pool/main/o/openjdk-8/… 502 apt-cacher: errore libcurl: errore durante la ricezione di dati dal peer
Rajesh Hatwar,

1
Questi sono i passaggi minimi corretti. 4 e 5 sono opzionali e possibilmente non richiesti.
Air

Non funziona per Ubuntu 14.04E: Package 'openjdk-8-jdk' has no installation candidate
Naive il

Questo ha funzionato per me durante l'aggiornamento di Jenkins (la versione più recente richiedeva Java8, il mio sistema aveva solo Java7 installato). Da notare che la quarta linea era fondamentale per far comportare correttamente Jenkins; fino alla sua esecuzione, ho continuato a ricevere Jenkins requires Java8 or later, but you are running 1.7.0_121-b00 from /usr/lib/jvm/java-7-openjdk-amd64/jre. Avere un voto ... Ti darei di più se potessi.
Doktor J,

62

OpenJDK 8 è stato rilasciato nel marzo 2014. Al momento di questa domanda, non ci sono pacchetti OpenJDK 8 nei repository ufficiali di Ubuntu per qualsiasi versione di Ubuntu. "Saranno presto disponibili", come dice la pagina del progetto JDK 8 , per alcune definizioni di presto.

In primo luogo, i pacchetti OpenJDK 8 arriveranno nella versione di sviluppo di Ubuntu. Questo può accadere durante il ciclo di sviluppo 14.10, ma per quanto ne so non esiste un programma prestabilito. Alcuni pacchetti di anteprima sono stati creati e sono disponibili per i test, vedere l'annuncio sulle mailing list debian-java e Ubuntu openjdk . Ad un certo punto questi pacchetti verranno caricati nei repository di sviluppo Debian e Ubuntu.

Una volta che OpenJDK 8 è nella versione di sviluppo di Ubuntu, potrebbe essere possibile richiedere il backport su 14.04. Si noti che non sarà mai disponibile nel trustyrepository primario , ma se lo si utilizza trusty-backportspotrebbe essere installabile da lì a un certo punto. Leggi il processo per la richiesta di backport in Ubuntu qui .


4
Ho cercato di rispondere alla tua domanda "come e quando" con i vincoli che sembri volere: devono provenire da repository ufficiali, devono essere OpenJDK e devono essere la versione 14.04 LTS.
Mike Miller,

30
È febbraio 2016 e java 8 non è ancora disponibile su Ubuntu 14.04 LTS. Questo è deludente.
Bhavin Doshi,

2
È aprile 2016, ancora niente java 8 ...
Stephan Henningsen

3
Ubuntu 16.04 uscirà ad aprile 2016, avrà OpenJDK 8 .
Mike Miller,

8
È settembre 2016 e Ubuntu 14.04 LTS sarà ancora supportato fino al 2019 ... e molti posti impiegheranno molto tempo ad adottare il 16.04 a causa di cambiamenti su larga scala (ad esempio systemd), quindi è ancora deludente java 8 non è facile da installare tramite apt il 14.04 :(
geerlingguy,

34

Nota: funzionerà solo con 14.10 o successivo :

1 anno di ritardo, ma come oggi funziona come previsto con apt-get.

Per l'installazione di JDK:

$ sudo apt-get install openjdk-8-jdk

Per installare JRE:

$ sudo apt-get install openjdk-8-jre

Come impostare il JDK predefinito

Modo più veloce

Esegui $ sudo update-alternatives --config javae inserisci il numero per il quale JDK utilizza la tua scelta.

Secondo modo

Elenca i JDK disponibili:

$ 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

Ora, per copiare e incollare la posizione di Open JDK 8 in modo che corrisponda al comando seguente:

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

3
Vedo ancora solo JDK 6 e 7, nessun openjdk-8-jdk sul mio Linux 14.04, dopo l'aggiornamento sudo apt-get. Hai aggiunto un repository speciale? Ho abilitato i backport fidati.
akauppi

2
Penso che stai correndo il 14.10 o il 15.04, vero?
akauppi

1
Non riesco a riprodurre su 14.04 LTS. Conferma che questa è la versione.
Thorbjørn Ravn Andersen,

1
@akauppi hai ragione !! Sto correndo il 14.10. Ci scusiamo per l'inconveniente, devo rimuovere la mia risposta?
Caraca,

1
Non vorrei che fosse rimosso - per alcuni, usare 14.10 invece di 14.04 potrebbe essere un'alternativa perfettamente valida.
akauppi,

22

Ecco cosa uso per configurare Oracle Java 7 e Java 8 [nota: non OpenJDK] da zero su 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

Questo è incustodito ed è adatto per l'inclusione in un blocco di provisioning Vagrant; Ho un'idea per maggiori dettagli: https://gist.github.com/tinkerware/cf0c47bb69bf42c2d740

EDIT: Questo accetterà automaticamente la licenza di Oracle per JDK; assicurati di essere d'accordo con quello prima di eseguirlo.


1
Sembra buono. Ma manca la parte in cui si ottiene l'accesso come root. Ancora bella risposta.
MadMike,

1
Giusto; Lo uso con Vagrant, che imposta l' vagrantutente senza password sudo.
Cagatay,

5
Questo è Oracle Java, non OpenJDK Java che era la questione. Si noti inoltre che le righe dell'eco rappresentano la domanda di accettazione della licenza da parte dell'installatore.
Thorbjørn Ravn Andersen,

3
@ ThorbjørnRavnAndersen Sì, ho notato che la domanda riguardava OpenJDK; Ho detto specificamente che il mio metodo è per installare Oracle Java. Potresti sostenere che questo non è correlato, ma penso che ci sia valore nel notare un'alternativa che ti procura comunque un runtime che può eseguire Java 7/8 su 14.04 LTS. "Elusione" della domanda di accettazione della licenza è una scelta di parole interessante; Direi che si dovrebbe leggere la licenza Oracle prima di eseguire lo script, che automatizza l'accettazione durante l'installazione.
Cagatay,

3
Grazie @Catatay !! questa risposta mi è stata molto utile, stavo cercando l'installazione di Java 8 usando Vagrant.
Sotsir,

14

A partire dal 08-08-2017 ho scoperto che questa domanda e le sue risposte sono diventate un po 'schiaccianti da scavare per capire il problema, quindi ho riassunto i risultati in questa risposta.

La risposta molto breve è che OpenJDK 8 a partire dal 08-08-2017 non è ufficialmente disponibile per Ubuntu 14.04 .

Vi sono tuttavia molte opzioni disponibili:

  • Esegui l'upgrade a una versione più recente di Ubuntu. OpenJDK 8 è disponibile dal 14.10 in poi. (OpenJDK 9 da 16.04 LTS in poi, OpenJDK 11 da 18.04 LTS in poi)
  • Scarica e installa Oracle Java (non OpenJDK) da http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html manualmente come file tar.gz che deve solo essere decompresso e avere la licenza accettata prima della bindirectory può essere aggiunta alla tua $PATHvariabile. Puoi anche scegliere di utilizzare un PPA di terze parti. Si noti che Oracle Java sembra essere solo per i clienti paganti in un futuro prevedibile (intorno a Java 11).
  • Scarica OpenJDK 8 usando un PPA di terze parti.
  • Scarica una build certificata Azul di OpenJDK 8 da http://www.azul.com/downloads/zulu/zulu-linux/ (DEB)
  • Compila il sorgente e installalo tu stesso.

Vedi altre risposte per i dettagli.

Si noti che gli archivi di pacchetti personali (PPA) sono generalmente realizzati da persone su base volontaria. I contenuti potrebbero non essere aggiornati o andare via senza preavviso.

Personalmente consiglierei di aggiornare Ubuntu a 18.04 LTS, o se non è possibile scaricare un build Azul.


Nota: se hai ancora bisogno di eseguire il backport di OpenJDK 8 su 14.04, vota per questo errore accedendo e facendo clic su "Ti influenza" in alto: https://bugs.launchpad.net/ubuntu/+source/openjdk-8/ + bug / 1.368.094


5

Nota Dal 22 aprile 2016 i pacchetti per Vivid sono stati rimossi, purtroppo. Articolo di news in pacchetti.ubuntu.com: "Rifletti versione xenial, aggiungi yakkety, rimuovi vivido". La soluzione di questa risposta è intelligente ma non è più applicabile nella situazione attuale. A partire dal 6 gennaio 2017 non esiste ancora un backport per java 8 su trusts package.ubuntu.com/trusty-backports/java. Modifica quando si applicano le modifiche.


Vedi la risposta dal sito ufficiale Android

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

Non ci sono pacchetti OpenJDK 8 supportati disponibili per Ubuntu 14.04. I pacchetti Ubuntu 15.04 OpenJDK 8 sono stati usati con successo con Ubuntu 14.04. Le versioni più recenti del pacchetto (ad esempio quelle per 15.10, 16.04) non sono state eseguite su 14.04 utilizzando le istruzioni riportate di seguito.

Scarica i pacchetti .deb per la tua architettura da http://packages.ubuntu.com/vivid/openjdk-8-jdk :
openjdk-8-jre-headless
openjdk-8-jre
openjdk-8-jdk

Ricorda, puoi ottenere l'architettura per la tua macchina con:

$ uname -m    

x86_64 rappresenta un'architettura kernel Linux a 64 bit (amd64) e i386 / i486 / i586 / i686 rappresenta un sistema a 32 bit (i386).

Facoltativamente, confermare i checksum dei file scaricati utilizzando le informazioni disponibili su http://packages.ubuntu.com/vivid/openjdk-8-jdk .

Ad esempio con lo strumento sha256sum:

$ sha256sum {package file}    

Installa i pacchetti:

$ sudo apt-get update    

Esegui dpkg per ciascuno dei file .deb scaricati. Potrebbe produrre errori dovuti a dipendenze mancanti:

$ sudo dpkg -i {downloaded.deb file}    

Per correggere le dipendenze mancanti:

$ sudo apt-get -f install    

4

Ho appena votato qui e ora siamo 733 persone a cui teniamo per il backport di openjdk-8 su ubuntu-14.04.

Ho scoperto che questo repository PPA è abbastanza aggiornato

e speriamo promettente !?

e ha funzionato per me. Sono riuscito a installare openjdk-8-jdk su ubuntu-14.04 con i seguenti comandi:

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

ed ecco il mio java -versionoutput:

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)

ed ecco il mio uname -aoutput:

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

ed ecco il mio lsb_release -aoutput:

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

Il mio provider di server host virtuale mi sta dicendo che forniscono supporto solo per Ubuntu-14.04 e suppongo che vogliono continuare così fino al 2019! quindi per favore fatemi sapere se conoscete un modo migliore per avere openjdk-8 su Ubuntu-14.04?

Grazie!


Consiglierei di usare Azul Zulu. azul.com/downloads/zulu
Thorbjørn Ravn Andersen

Ho anche dovuto eseguire quanto segue per farlo funzionare: sudo update-java-alternatives --jre --set java-1.8.0-openjdk-amd64esudo update-java-alternatives --jre-headless --set java-1.8.0-openjdk-amd64
champost il

2

Il gestore di pacchetti Nix mantiene anche pacchetti binari di OpenJDK 8 per Ubuntu, il che significa che è possibile ottenere un compilatore Java 8 funzionante in meno di cinque minuti dall'inizio alla fine (con una connessione Internet veloce, ovviamente).

I passaggi sono:

  1. Installa il gestore pacchetti Nix ( https://www.domenkozar.com/2014/01/02/getting-started-with-nix-package-manager/ ):$ bash <(curl https://nixos.org/nix/install)

  2. Esegui la shell one-liner che Nix ti dice alla fine dell'installazione: $ . ~/.nix-profile/etc/profile.d/nix.sh

  3. Installa il pacchetto OpenJDK Nix: $ nix-env -i openjdk

  4. Controllare javac:$ javac -version

Questo è tutto. Oh, e vorrai assicurarti di inserire il one-liner dal passaggio 2 nel tuo ~/.bashrc. Ciò dirà a Nix di collegare correttamente i pacchetti installati (poiché mantiene i file effettivi in ​​directory non standard).


1
Per curiosità: perché dovresti volere un gestore di pacchetti aggiuntivo oltre a apt-get?
Thorbjørn Ravn Andersen,

2
@ ThorbjørnRavnAndersen - il motivo specifico è di ottenere rapidamente OpenJDK 8 con il minimo dolore, e il motivo generale è che Nix è un rivoluzionario miglioramento rispetto a apt-get e altri gestori di pacchetti meno recenti.
Yawar,

Lo sto chiedendo nel caso generale, non specificamente per OpenJDK. Devono esserci ragioni molto pesanti per introdurre un nuovo gestore di pacchetti per superare di gran lunga il non utilizzo dell'ecosistema esistente, che ho difficoltà a vedere.
Thorbjørn Ravn Andersen,

1
@ ThorbjørnRavnAndersen - ci sono ottime ragioni per raccomandare Nix nel caso generale. Come ho già detto, si tratta di un miglioramento rivoluzionario. Sulla scala di git su svn. Controlla infoq.com/articles/configuration-management-with-nix per ulteriori informazioni.
Yawar,

2

Ricevo OpenJDK 8 dai repository Debian ufficiali, piuttosto che un PPA casuale. Ecco come l'ho fatto:

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

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

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

dove cambi <httpredir>con il prefisso per un mirror quasi (vedi https://www.debian.org/mirror/list )

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

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

Quindi infine esegui l'installazione:

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

Questa risposta non funziona per me. openjdk-8-jdkvuole openjdk-8-jrequello vuole libjpeg62-turbo. Secondo aptquest'ultimo "non è installabile" o più verbalmente "non è disponibile, ma è indicato da un altro pacchetto. Ciò può significare che il pacchetto è mancante, è stato obsoleto o è disponibile solo da un'altra fonte" - quindi non dai repository che ho. L'inseguimento diventa troppo ampio per essere saggio
XavierStuvw,

1

In realtà è anche facile costruire Java 8 da soli direttamente da fonti ... Sembra spaventoso? È davvero sorprendentemente facile e richiede letteralmente circa 15 minuti, usando https://github.com/hgomez/obuildfactory/ , come ho descritto su http://blog2.vorburger.ch/2014/06/06/build- your-own-jdk-at-home.html


1
Costruire è una cosa. E il TCK?
Thorbjørn Ravn Andersen,

1
@ ThorbjørnRavnAndersen Non ne ho idea. Per un singolo utente finale, l'autocostruzione è già utile IMHO. Per aver effettivamente preparato un pacchetto accuratamente testato, è probabilmente un'altra storia ... Temo di non sapere altro che te. Mi sono appena guardato intorno e ho scoperto openjdk.java.net/groups/conformance/JckAccess , l'hai visto?
vorburger,

1

Aggiornamento dell'11 marzo 2016, esegui questi come 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
La prima riga non è necessaria. Le successive 4 righe sono equivalenti a add-apt-repository ppa:openjdk-r/ppa. Questa risposta è anche un duplicato di quelli più vecchi.
Paul Stelian,

1
In sintesi (a partire dal 02-05-2017), questo è ciò che funziona per me. sudo add-apt-repository -y ppa:openjdk-r/ppa; sudo apt-get update; sudo apt-get install -y openjdk-8-jdk
Tzunghsing David Wong,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.