Instalação do OpenJDK e Oracle JDK 11 no Ubuntu e Debian

Neste artigo será abordada a instalação do OpenJDK e Oracle JDK nas distribuições Ubuntu, Debian e derivadas.

[ Hits: 6.150 ]

Por: Eduardo Mozart de Oliveira em 19/12/2018 | Blog: http://www.eduardomozartdeoliveira.wordpress.com/


Introdução



A opção mais fácil de instalação do Java é utilizar a versão empacotada com o Ubuntu. Especificamente, isso irá instalar o Java Runtime Environment (JRE) do OpenJDK, a versão mais recente e recomendada (1).

Este pacote instalará as seguintes versões do OpenJDK (2) (3):
  • Ubuntu 16.04: instalará o OpenJDK 8.
  • Ubuntu 18.04: instalará o OpenJDK 11.
  • Debian 8 (Jessie): instalará o OpenJDK 7.
  • Debian 9 (Stretch): instalará o OpenJDK 8.
  • Debian 10 (Buster) e Debian sid: instalará o OpenJDK 11.

Primeiro, atualize o índice de pacotes Depois, instale o Java (1).

sudo apt-get update && sudo apt-get install default-jre

Java Development Kit (JDK)

Existe uma outra instalação padrão do Java, chamada de JDK (Java Development Kit). O JDK é normalmente necessário somente se você vai compilar programas em Java ou se o software que usa o Java o requerer especificamente (1).

O JDK contém o JRE, portanto, não há desvantagens se você instalar o JDK em vez do JRE, exceto pelo tamanho maior de arquivo (1).

Você pode instalar o JDK com o seguinte comando (1):

sudo apt-get update && sudo apt-get install default-jdk

Oracle (64-bit)

Licenciamento: é importante notar que com o Java 11, a Oracle usa uma nova licença comercial. Ele pode ser baixado e usado em custos somente para fins de desenvolvimento e teste, e requer o pagamento de uma taxa se usado em ambiente de produção (4):

You may not: use the Programs for any data processing or any commercial, production, or internal business purposes other than developing, testing, prototyping, and demonstrating your Application.
Esta citação é da:
Como resultado, você deve usar o Oracle JDK apenas se você pretende pagar por ele. Use o OpenJDK, disponível nos repositórios do Debian/Ubuntu, para outros fins. Do Java 11 em diante, as compilações do Oracle JDK e OpenJDK são essencialmente idênticas, com pequenas diferenças que podem ser lidas aqui (4).

Oracle JDK 11

O Oracle Java 11 está disponível para download como um pacote DEB, mas tudo que o pacote faz é extrair os arquivos para /usr/lib/jvm/jdk-11, como se você mesmo extraísse o arquivo lá, sem opções para definir ou atualizar as alternativas padrões do Java, definir variáveis de ambiente etc (4).

O instalador Java do Linux Uprising PPA, define o Java 11 como padrão e define as variáveis de ambiente ("JAVA_HOME", etc) (4).

O pacote neste PPA usa o instalador do Java do Web Upd8 como base, mas foi modificado para instalar a versão 11 do Oracle JDK. O instalador baixa o Oracle Java 11 (64-bit é a única versão que a Oracle provê) dos servidores da Oracle manualmente, por que a licença proibe o upload do binário para o PPA.

Isso pode ser útil caso você esteja atrás de um Proxy/Firewall ou seu ISP bloqueia o link de download do Oracle JDK 11 (então você pode baixá-lo de um computador diferente etc).

Para fazer isso, baixe o arquivo "Oracle Java 11 tar.gz" e salve-o no diretório /var/cache/oracle-jdk11-installer. Agora, instale o pacote "oracle-java11-installer" e ele deverá escolher o arquivo tar.gz salvo ao invés de baixá-lo (4).

Primeiro, adicione o PPA abaixo no Ubuntu (64-bit), depois atualize seu repositório de pacotes e instale o Java (4) (1).

sudo add-apt-repository ppa:linuxuprising/java
sudo apt-get update
sudo apt-get install oracle-java11-installer

No Debian (64-bit), você pode adicionar o repositório e instalar o Oracle Java 11 usando estes comandos (4):

su -
# echo "deb http://ppa.launchpad.net/linuxuprising/java/ubuntu bionic main" | tee /etc/apt/sources.list.d/linuxuprising-java.list
# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 73C3DB2A
# apt-get update
# apt-get install oracle-java11-installer
# exit

O pacote "oracle-java11-installer" possui no campo //Recommends//, o pacote "oracle-java11-set-default", que define o Oracle Java 11 como padrão (incluindo a configuração da variável JAVA_HOME, que requer o encerramento da sessão). Tal pacote recomendado é instalado automaticamente no Ubuntu, mas não em distros Linux baseadas no Debian. (4)

Para tornar padrão o Oracle Java 11, instale o pacote o"racle-java11-set-default" (4):

sudo apt install oracle-java11-set-default

Se você quer instalar o Oracle Java 11, mas não quer defini-lo como Java padrão, certifique-se que o pacote "oracle-java11-set-default" não está instalado, remova-o (4):

sudo apt remove oracle-java11-set-default

Aceitar automaticamente a licença do Oracle Java 11 (para instalações automatizadas)

Por padrão, o instalador do Oracle Java 11 requer que você aceite a licença do Oracle Java antes de proceder com a instalação do JDK 11. Se você quer automatizar o processo de instalação do Java 11, use o seguinte comando para aceitar a licença automaticamente (4):

echo oracle-java11-installer shared/accepted-oracle-license-v1-2 select true | sudo /usr/bin/debconf-set-selections

Se o comando acima não aceitar a licença do Oracle Java 11 automaticamente, tente o comando abaixo no lugar (4):

echo oracle-java11-installer shared/accepted-oracle-licence-v1-2 boolean true | sudo /usr/bin/debconf-set-selections

Gerenciando o Java

Podem haver múltiplas versões do Java em um computador. Você pode configurar qual versão é a padrão para uso na linha de comando através do uso do comando update-alternatives, que gerencia quais links simbólicos são usados por diferentes comandos. (1)

sudo update-alternatives --config java

A saída será parecida com o seguinte (1):

There are 5 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      auto mode
  1            /usr/lib/jvm/java-6-oracle/jre/bin/java          1         manual mode
  2            /usr/lib/jvm/java-7-oracle/jre/bin/java          2         manual mode
  3            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode
  4            /usr/lib/jvm/java-8-oracle/jre/bin/java          3         manual mode
  5            /usr/lib/jvm/java-9-oracle/bin/java              4         manual mode

Press [enter] to keep the current choice[*], or type selection number:

Você pode escolher o número para ser usado como padrão. Isso também pode ser feito para outros comandos do Java, como o compilador (javaC), o gerador de documentação (javaDoc), a ferramenta de assinatura JAR (Jarsigner) e mais. Você pode utilizar o seguinte comando, completando com o comando que você quer customizar. (1)

sudo update-alternatives --config command

Verificando a versão do Java

Você pode checar a versão padrão do Java usando o seguinte comando (4):

java -version

Se o Oracle Java 11 for o padrão, você deverá receber uma saída similar a esta (4):

java version "11" 2018-09-25
Java(TM) SE Runtime Environment 18.9 (build 11+28)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11+28, mixed mode)


Você pode executar o seguinte comando para o javac também (4):

javac -version

Você deverá receber uma saída similar a esta abaixo (4):

javac 11

Configurando a variável de ambiente JAVA_HOME

Muitos programas, como os servidores Java, utilizam a variável de ambiente "JAVA_HOME" para determinar a localização da instalação do Java. Para configurar essa variável, precisamos saber primeiro onde o Java está instalado.

Você pode fazer isso executando o seguinte comando como na sessão anterior (1):

sudo update-alternatives --config java

Copie o caminho da sua instalação preferencial e abra o arquivo /etc/environment utilizando o nano ou o seu editor de texto favorito (1).

sudo nano /etc/environment

Ao final desse arquivo, adicione a seguinte linha, certificando-se de trocar o caminho destacado pelo seu caminho copiado (1).

JAVA_HOME="/usr/lib/jvm/java-8-oracle"

Salve, saia do arquivo e recarregue-o (1).

source /etc/environment

Agora, você pode testar se a variável de ambiente foi configurada executando o seguinte comando (1):

echo $JAVA_HOME

Isso irá retornar o caminho que você configurou (1).

Referências

1. Como Instalar o Java com Apt-Get no Ubuntu 16.04. DigitalOcean. Disponível em: https://www.digitalocean.com/community/tutorials/como-instalar-o-java-com-apt-get-no-ubuntu-16-04-pt. Acesso em: 17 dez. 2018.

2. How To Install Java with `apt` on Ubuntu 18.04. DigitalOcean. Disponível em: https://www.digitalocean.com/community/tutorials/how-to-install-java-with-apt-on-ubuntu-18-04. Acesso em: 17 dez. 2018.

3. Details of package default-jre in stretch. Debian. Disponível em: https://packages.debian.org/stretch/default-jre. Acesso em: 17 dez. 2018.

4. How To Install Oracle Java 11 In Ubuntu, Linux Mint Or Debian (From PPA Repository). Linux Uprising, 2018. Disponível em: https://packages.debian.org/stretch/default-jre. Acesso em: 17 dez. 2018.

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

Instalação do Driver ATI Radeon XPRESS 200 no Ubuntu 16.04

Desfragmentando partições NTFS no Linux

Configuração do Ubuntu 16.04 para acesso com cartão ao Banrisul

Solução para Ubuntu sem som

Como resolver problemas com o pkg-config

Leitura recomendada

Administração - Controle de Acessos

Redmine no Debian - Instalação e configuração

Instalando Asterisk 1.4 no Debian 4.0

HOWTO - Usando PSP no Gentoo Linux

LTSP 5 no Ubuntu 8.04

  
Comentários
[1] Comentário enviado por Cizordj em 20/12/2018 - 11:16h

Olha, muito obrigado pelo artigo, eu estive por tempos procurando entender como se instala a última versão do java manualmente. Ainda mais porque sou ruim em encontrar pacotes .deb prontos e só encontrei o tar.xz e também acho complicado a documentação do openJDK (nada contra). Após muito esforço criei um script para instalar não sei se é errado eu postar aqui, se não for me avisem que eu posto. O seu artigo me ajudou a esclarecer sobre a variável $JAVA_HOME que no script não tinha colocado. Feliz natal =)


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts