Como instalar o OpenJDK 8 no 14.04 LTS?

306

O Java 8 agora está disponível de acordo com http://openjdk.java.net/projects/jdk8/ , mas http://openjdk.java.net/install/ ainda não menciona como instalar o OpenJDK 8 (não Oracle Java) em Suporte a longo prazo do Ubuntu 14.04. (Para 14.10 e posterior, basta executar apt-get install openjdk-8-jdk)

Como e quando isso pode ser feito?

(08/08/2017: A resposta muito curta é: O OpenJDK 8 a partir de 08/08/2017 não está oficialmente disponível nos repositórios oficiais como um pacote APT para Ubuntu 14.04. Veja o resumo completo nesta resposta )

Nota: Por enquanto, usaremos o Oracle Java - a solução ideal para mim é, no entanto, o OpenJDK dos repositórios do Ubuntu, até que o Oracle Java esteja disponível diretamente e sem esforço nos repositórios do Ubuntu.


Thorbjørn Ravn Andersen
fonte
1
Você precisa compilar você mesmo. Aqui está como: github.com/hgomez/obuildfactory/wiki/... Alterar o nome do arquivo para coincidir com a versão 8 ;-)
Rinzwind
2
A Azul começou a fornecer compilações OpenJDK sob o nome "Zulu", que podem ser baixadas, descompactadas e usadas automaticamente. (Eles ganham seu dinheiro com o apoio). azulsystems.com/products/zulu/downloads
Thorbjørn Ravn Andersen
1
Notavelmente, o mesmo ppa no qual o apt-fast for confiável está hospedado em,, ppa:saiarcot895/myppapossui uma versão do openjdk-8 que funciona. encolher de ombros
ThorSummoner
À medida que o tempo passa, parece que a solução mais simples é simplesmente atualizar 16.04 LTS quando disponível.
Thorbjørn Ravn Andersen

Respostas:

277

Você pode fazer isso por;

Atualização final

JDK

sudo apt-get install openjdk-8-jdk

JRE

sudo apt-get install openjdk-8-jre

Atualização antiga

Encontrei dois repositórios, mas não recomendo

  • Construções OpenJDK (todos os arcos)

    ppa:openjdk-r/ppa
  • OpenJDK 8 backport para serviços confiáveis

    ppa:jochenkemnade/openjdk-8

mensagem original

Se você realmente deseja usar o OpenJDK, precisa compilar a partir do código-fonte. Ainda não existe nenhum PPA para o OpenJDK.

Foi solicitado em https://bugs.launchpad.net/ubuntu/+bug/1297065

Eu recomendo que você use o Webup8 Oracle Java8 Installer

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

Para configurar automaticamente as variáveis ​​de ambiente Java 8

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

Verifique-o

java -version

Então você tem que esperar para usar o OpenJDK8

muhasturk
fonte
8
@JohnMerlino, acho que o PPA permite atualizações automáticas quando novas versões são lançadas.
Thorbjørn Ravn Andersen
7
O openjdk-8 agora está no Utopic. bugs.launchpad.net/ubuntu/+source/openjdk-8/+bug/1341628 foi aumentada para backport para 14,04 como é LTS:
Thorbjørn Ravn Andersen
56
Por que a nova edição? Parece ainda não estar no repo 14.04 e sudo apt-get install openjdk-8-jdkainda não funciona pelo menos para mim.
Xj4
17
Desde 11/01/2016, os PPAs não oficiais do Ubuntu ainda são necessários, pois o OpenJDK 8 ainda não chegou aos backports. Não considero que seja uma resposta para minha pergunta, embora pareça que outras pessoas o façam.
Thorbjørn Ravn Andersen
8
Essa resposta é altamente enganosa por ser incompleta, pois diz que não recomenda o PPA mencionado, mas não funcionará sem ele.
Reinier pós
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
Pankaj Wahane
fonte
7
Este repositório está datado; até hoje a versão mais recente do openjdk 1.8 é 66. A versão disponível neste repositório é 45. #
mattm 10/15/15
Falha ao buscar ppa.launchpad.net/openjdk-r/ppa/ubuntu/pool/main/o/openjdk-8/… 502 apt-cacher: erro libcurl: Falha ao receber dados do par
Rajesh Hatwar
1
Essas são as etapas mínimas corretas. 4 e 5 são opcionais e, possivelmente, não são necessários.
Air
Não funciona para o Ubuntu 14.04E: Package 'openjdk-8-jdk' has no installation candidate
Naive
Isso funcionou para mim ao atualizar o Jenkins (a versão mais recente exigia o Java8, meu sistema só tinha o Java7 instalado). É importante notar que a quarta linha foi fundamental para que Jenkins se comportasse corretamente; até executá-lo, continuei recebendo Jenkins requires Java8 or later, but you are running 1.7.0_121-b00 from /usr/lib/jvm/java-7-openjdk-amd64/jre. Tenha um voto positivo ... Eu daria mais se pudesse.
Doktor J
62

O OpenJDK 8 foi lançado em março de 2014. No momento desta pergunta, não havia pacotes do OpenJDK 8 nos repositórios oficiais do Ubuntu para qualquer versão do Ubuntu. Eles "estarão disponíveis em breve", como diz a página do projeto JDK 8 , para algumas definições de breve.

Primeiro, os pacotes do OpenJDK 8 serão lançados na versão de desenvolvimento do Ubuntu. Isso pode acontecer durante o ciclo de desenvolvimento 14.10, mas não há um cronograma definido até onde eu saiba. Alguns pacotes de visualização foram construídos e estão disponíveis para teste, veja o anúncio nas listas de discussão debian-java e Ubuntu openjdk . Em algum momento, esses pacotes serão enviados para os repositórios de desenvolvimento Debian e Ubuntu.

Uma vez que o OpenJDK 8 esteja na versão de desenvolvimento do Ubuntu, pode ser possível solicitar que ele seja portado para 14.04. Observe que ele nunca estará disponível no trustyrepositório primário , mas se você o usar trusty-backports, poderá ser instalável a partir daí em algum momento. Leia sobre o processo de solicitação de backports no Ubuntu aqui .

Mike Miller
fonte
4
Tentei responder à sua pergunta "como e quando" com as restrições que você deseja: deve ser de repositórios oficiais, deve ser o OpenJDK e deve ser a versão 14.04 LTS.
Mike Miller
30
Seu fevereiro de 2016 e o ​​java 8 ainda não estão disponíveis no Ubuntu 14.04 LTS. Isso é decepcionante.
Bhavin Doshi
2
É abril de 2016 ainda não java 8 ...
Stephan Henningsen
3
O Ubuntu 16.04 será lançado em abril de 2016, com o OpenJDK 8 .
Mike Miller
8
É setembro de 2016 e o ​​Ubuntu 14.04 LTS ainda será suportado até 2019 ... e muitos lugares levarão muito tempo para adotar o 16.04 devido a mudanças em larga escala (por exemplo, systemd), por isso ainda é decepcionante o java 8 não é fácil de instalar via apt em 14.04 :(
geerlingguy 3/16
34

Nota - Isso funcionará apenas com 14.10 ou posterior :

1 ano atrasado, mas hoje funciona como esperado com o apt-get.

Para instalar o JDK:

$ sudo apt-get install openjdk-8-jdk

Para instalar o JRE:

$ sudo apt-get install openjdk-8-jre

Como definir o JDK padrão

Maneira mais rápida

Execute $ sudo update-alternatives --config javae insira o número para o qual o JDK usará de sua escolha.

Segunda via

Liste os JDKs disponíveis:

$ 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

Agora, copie e cole o local do Open JDK 8 para corresponder ao comando abaixo:

$ sudo update-java-alternatives -s /usr/lib/jvm/java-1.8.0-openjdk-amd64
caraca
fonte
3
Ainda vejo apenas os JDKs 6 e 7, sem openjdk-8-jdk no meu Linux 14.04, após a atualização do sudo apt-get. Você adicionou algum repositório especial? Eu tenho backports confiáveis ​​habilitados.
akauppi
2
Eu acho que você está rodando 14.10 ou 15.04, não é?
akauppi
1
Não consigo reproduzir em 14.04 LTS. Por favor, confirme que esta é a versão.
Thorbjørn Ravn Andersen
1
@akauppi você está certo !! Estou executando a 14.10. Desculpe pelo transtorno, devo remover minha resposta?
Caracol 20/04
1
Eu não gostaria que fosse removido - para alguns, usar 14.10 em vez de 14.04 pode ser uma alternativa perfeitamente boa.
akauppi
22

Aqui está o que eu uso para configurar o Oracle Java 7 e Java 8 [nota: não o OpenJDK] do zero no 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

Isso é autônomo e é adequado para inclusão em um bloco de provisão do Vagrant; Eu tenho uma essência com mais detalhes: https://gist.github.com/tinkerware/cf0c47bb69bf42c2d740

EDIT: aceita automaticamente a licença da Oracle para o JDK; verifique se você concorda com isso primeiro antes de executá-lo.

Cagatay
fonte
1
Parece bom. Mas está faltando a parte em que você obtém acesso root. Ainda boa resposta.
madmike
1
Direito; Eu uso isso com o Vagrant, que configura o vagrantusuário sem senha sudo.
Cagatay
5
Este é o Oracle Java, não o OpenJDK Java, que era a questão. Observe também que as linhas de eco circundam a pergunta de aceitação de licença do instalador.
Thorbjørn Ravn Andersen
3
@ ThorbjørnRavnAndersen Sim, notei que a pergunta era sobre o OpenJDK; Eu disse especificamente que meu método é para instalar o Oracle Java. Você pode argumentar que isso não está relacionado, mas acho que vale a pena notar uma alternativa que ainda oferece um tempo de execução que pode executar o Java 7/8 no 14.04 LTS. A "evasão" da questão de aceitação de licença é uma escolha interessante de palavras; Eu diria que é preciso ler a licença do Oracle antes de executar o script, que automatiza a aceitação durante a instalação.
Cagatay
3
Obrigado @Cagatay !! esta resposta foi muito útil para mim, eu estava procurando a instalação do Java 8 usando o Vagrant.
Sotsir 15/09/2015
14

A partir de 08/08/2017, descobri que essa pergunta e suas respostas haviam se tornado um pouco esmagadoras para entender o problema, então resumi as descobertas nesta resposta.

A resposta muito curta é que o OpenJDK 8 a partir de 08/08/2017 não está disponível oficialmente para o Ubuntu 14.04 .

No entanto, existem muitas opções disponíveis:

  • Atualize para uma versão mais recente do Ubuntu. O OpenJDK 8 está disponível a partir das 14.10. (OpenJDK 9 a partir de 16.04 LTS, OpenJDK 11 a partir de 18.04 LTS)
  • Faça o download e instale o Oracle Java (não o OpenJDK) em http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html manualmente como um arquivo tar.gz que só precisa ser descompactado e ter a licença aceita antes que o bindiretório possa ser adicionado à sua $PATHvariável. Você também pode optar por usar um PPA de terceiros. Observe que o Oracle Java parece ser apenas para clientes pagantes no futuro próximo (em torno do Java 11).
  • Faça o download do OpenJDK 8 usando um PPA de terceiros.
  • Faça o download de uma versão do OpenJDK 8 certificada pela Azul em http://www.azul.com/downloads/zulu/zulu-linux/ (DEB)
  • Compile a fonte e instale você mesmo.

Veja outras respostas para obter detalhes.

Observe que o Personal Package Archives (PPA) é geralmente produzido por indivíduos de forma voluntária. O conteúdo pode estar desatualizado ou desaparecer sem aviso prévio.

Pessoalmente, eu recomendaria atualizar o Ubuntu para 18.04 LTS ou, se não for possível, baixar uma versão do Azul.


Nota: Se você ainda precisar do OpenJDK 8 portado para 14.04, vote neste bug efetuando login e clicando em "Isso afeta você" na parte superior: https://bugs.launchpad.net/ubuntu/+source/openjdk-8/ + bug / 1368094

Thorbjørn Ravn Andersen
fonte
5

Nota Desde 22 de abril de 2016, os pacotes do Vivid foram removidos, infelizmente. Artigo de notícias em packages.ubuntu.com: "Reflita a liberação xenial, adicione yakkety, remova vivas". A solução alternativa dessa resposta é inteligente, mas não é mais aplicável na situação atual. A partir de 6 de janeiro de 2017, ainda não havia backport para o java 8 nos pacotes confiáveis.ubuntu.com/trusty-backports/java. Edite conforme as alterações se aplicam.


Veja a resposta do site oficial do Android

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

Não há pacotes OpenJDK 8 suportados disponíveis para o Ubuntu 14.04. Os pacotes Ubuntu 15.04 OpenJDK 8 foram usados ​​com sucesso com o Ubuntu 14.04. As versões mais recentes do pacote (por exemplo, as de 15.10, 16.04) foram encontradas para não funcionar no 14.04 usando as instruções abaixo.

Faça o download dos pacotes .deb para sua arquitetura em http://packages.ubuntu.com/vivid/openjdk-8-jdk :
openjdk-8-jre-headless
openjdk-8-jre
openjdk-8-jdk

Lembre-se, você pode obter a arquitetura para sua máquina com:

$ uname -m    

x86_64 representa uma arquitetura de kernel Linux de 64 bits (amd64) e i386 / i486 / i586 / i686 representa um sistema de 32 bits (i386).

Opcionalmente, confirme as somas de verificação dos arquivos baixados usando as informações encontradas em http://packages.ubuntu.com/vivid/openjdk-8-jdk .

Por exemplo, com a ferramenta sha256sum:

$ sha256sum {package file}    

Instale os pacotes:

$ sudo apt-get update    

Execute o dpkg para cada um dos arquivos .deb que você baixou. Pode produzir erros devido à falta de dependências:

$ sudo dpkg -i {downloaded.deb file}    

Para corrigir dependências ausentes:

$ sudo apt-get -f install    
Bin Chen
fonte
4

Eu apenas votei aqui e agora somos 733 pessoas que nos importam com o backport do openjdk-8 para o ubuntu-14.04.

Eu encontrei este repositório PPA é bastante atualizado

e esperançosamente promissor !?

e funcionou para mim. Consegui instalar o openjdk-8-jdk no ubuntu-14.04 com os seguintes comandos:

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

e aqui está a minha java -versionsaída:

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)

e aqui está a minha uname -asaída:

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

e aqui está a minha lsb_release -asaída:

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

Meu provedor de servidores host virtuais está me dizendo que eles apenas fornecem suporte para o Ubuntu-14.04 e eu acho que eles querem continuar assim até 2019! então por favor me avise se você conhece alguma maneira melhor de ter o openjdk-8 no ubuntu-14.04?

Obrigado!

Sid Morad
fonte
Eu recomendaria o uso do Azul Zulu. azul.com/downloads/zulu
Thorbjørn Ravn Andersen
Eu também tive que executar o seguinte para fazê-lo funcionar: 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
2

O gerenciador de pacotes Nix também mantém pacotes binários do OpenJDK 8 para Ubuntu, o que significa que você pode obter um compilador Java 8 funcionando em menos de cinco minutos do início ao fim (com uma conexão rápida à Internet, é claro).

Os passos são:

  1. Instale o gerenciador de pacotes Nix ( https://www.domenkozar.com/2014/01/02/getting-started-with-nix-package-manager/ ):$ bash <(curl https://nixos.org/nix/install)

  2. Execute o one-liner do shell que o Nix solicita no final da instalação: $ . ~/.nix-profile/etc/profile.d/nix.sh

  3. Instale o pacote OpenJDK Nix: $ nix-env -i openjdk

  4. Verifique javac:$ javac -version

É isso aí. Ah, e você deve certificar-se de colocar o verso da etapa 2 no seu ~/.bashrc. Isso instruirá o Nix a vincular seus pacotes instalados corretamente (uma vez que mantém os arquivos reais em diretórios não padrão).

Yawar
fonte
1
Por curiosidade - por que você deseja um gerenciador de pacotes adicional além do apt-get?
Thorbjørn Ravn Andersen 10/10
2
@ ThorbjørnRavnAndersen - o motivo específico é obter rapidamente o OpenJDK 8 com um mínimo de esforço, e o motivo geral é que o Nix é uma melhoria revolucionária em relação ao apt-get e a outros gerenciadores de pacotes mais antigos.
Yawar
Estou perguntando no caso geral - não pelo OpenJDK especificamente. Deve haver razões muito pesadas para introduzir um novo gerenciador de pacotes para compensar a não utilização do ecossistema existente, o que eu tenho dificuldade em ver.
Thorbjørn Ravn Andersen 10/10
1
@ ThorbjørnRavnAndersen - existem boas razões para recomendar o Nix no caso geral. Como mencionei, é uma melhoria revolucionária. Na escala de git sobre svn. Confira infoq.com/articles/configuration-management-with-nix para obter mais informações.
Yawar
2

Estou recebendo o OpenJDK 8 dos repositórios oficiais do Debian, em vez de algum PPA aleatório. Aqui está como eu fiz isso:

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

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

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

onde você altera <httpredir>com o prefixo de um espelho próximo (consulte https://www.debian.org/mirror/list )

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

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

Finalmente, faça a instalação:

sudo apt-get update
sudo apt-get -t jessie-backports install openjdk-8-jdk
Hans-Christoph Steiner
fonte
Esta resposta não funciona para mim. openjdk-8-jdkquer openjdk-8-jreque quer libjpeg62-turbo. De acordo com apteste último, "não é instalável" ou mais detalhadamente "não está disponível, mas é referido por outro pacote. Isso pode significar que o pacote está ausente, foi obsoleto ou está disponível apenas em outra fonte" - portanto, não dos repositórios que eu tenho. A perseguição se torna demasiado grande para ser sábio
XavierStuvw
1

Na verdade, também é fácil construir o Java 8 diretamente a partir de fontes ... Parece assustador? É realmente surpreendentemente fácil e leva literalmente cerca de 15 minutos a sério, usando https://github.com/hgomez/obuildfactory/ , como descrevi em http://blog2.vorburger.ch/2014/06/build- your-own-jdk-at-home.html

vorburger
fonte
1
Construir é uma coisa. E o TCK?
Thorbjørn Ravn Andersen
1
@ ThorbjørnRavnAndersen Não faço ideia. Para um usuário final individual, a criação própria já é IMHO útil. Na verdade, para preparar um pacote completamente testado, é provavelmente outra história ... Acho que não sei nada além de você. Eu apenas olhei em volta e encontrei openjdk.java.net/groups/conformance/JckAccess , você viu isso?
vorburger
1

Atualize em 11 de março de 2016, execute-os como 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"
Zhang Lei
fonte
2
A primeira linha não é necessária. As próximas 4 linhas são equivalentes a add-apt-repository ppa:openjdk-r/ppa. Esta resposta também é uma duplicata das mais antigas.
Paul Stelian
1
Em resumo (a partir de 02/05/2017), é isso que funciona para mim. sudo add-apt-repository -y ppa:openjdk-r/ppa; sudo apt-get update; sudo apt-get install -y openjdk-8-jdk
Tzunghsing David Wong