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: 42.463 ]

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 e Configuração do Zabbix 3 e Agentes (Linux/Windows)

Solução para Ubuntu sem som

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

Adicionando um atalho na área de trabalho a um compartilhamento de rede no Ubuntu

Como resolver problemas com o pkg-config

Leitura recomendada

Reduzindo problemas de atualizações no Debian, Ubuntu e derivados

Driver Nvidia atual + Ubuntu + Beryl

Rsyslog - Gerenciamento centralizado de logs

Configuração de servidor DHCP no Debian Linux

LILO gráfico e animado no Slackware

  
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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts