Java Instalação - alandrade21/docsCompartilhados GitHub Wiki

Índice

  1. Instalando Open JDK
    1. Instalando versões antigas da OpenJDK
  2. Instalando Java Oracle

Instalando Open JDK

Se o Java da Oracle estiver instalado, é necessário desinstalá-lo primeiro. Caso ele tenha sido instalado pelo pacote oracle-java8-installer (não existe mais) ou similares, o processo de instalação está documentado nesta página, na seção Desinstalando o Pacote oracle-java8-installer.

Para instalar o open jdk 11:

sudo apt install openjdk-11-jdk

Para trocar a versão default do java:

sudo update-alternatives --config java

Esse comando vai listar todas as versões instaladas para você escolher qual usar.

Para configurar a variável de ambiente JAVA_HOME é necessário alterar o arquivo /etc/environment:

sudo su
echo "JAVA_HOME=JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")" >> /etc/environment
source /etc/environment
exit

O código acima configura a variável com base no link simbólico utilizado pelo sistema de alternativas.

Para verificar o conteúdo da variável de ambiente JAVA_HOME, use o comando echo $JAVA_HOME.

Outras Libs

sudo apt-get install libcanberra-gtk-module

Instalando versões antigas da OpenJDK

Adicione o repositório da AdoptOpenJDK:

wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | sudo apt-key add -
sudo add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/

Instale a versão desejada:

sudo apt update
sudo apt install adoptopenjdk-8-hotspot

Para trocar a versão default do java:

sudo update-alternatives --config java

Esse comando vai listar todas as versões instaladas para você escolher qual usar.

Instalando Java Oracle

Baixe o JDK na página da Oracle. Será necessário ter uma conta. Nas versões mais novas, já há um instalador .deb. Versões muito antigas (7 para trás) precisam ser baixadas da seção java archives.

Instalando via arquivo compactado

Descompacte o arquivo com o comando:

sudo tar -zxvf jdk-8u251-linux-x64.tar.gz -C /usr/lib/jvm/

Faça um update alternatives:

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_251/bin/java 3
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0_251/bin/javac 3

Escolha a verão default do operacional:

sudo update-alternatives --config java
sudo update-alternatives --config javac

Verifique a versão do java:

java -version

Configurando a JAVA_HOME

Por padrão, para o uso de eclipse e maven, não é necessário ter uma variável de ambiente JAVA_HOME em seu sistema Linux.

No entanto, é comum que algumas ferramentas necessitem dessa variável de ambiente. Se esse for o seu caso, o melhor lugar para definir essa variável é no arquivo /etc/environment. O conteúdo desse arquivo é carregado em toda seção de terminal, na inicialização dessa seção, para todos os usuários da máquina.

Adicione a linha abaixo nesse arquivo:

JAVA_HOME=/usr/lib/jvm/<<diretório da sua JDK>>/

Por exemplo:

JAVA_HOME=/usr/lib/jvm/jdk1.8.0_251/

Caso seu usuário não tenha permissão de sudo, você pode utilizar o arquivo .profile que fica na raiz da sua pasta de usuário. Insira a seguinte linha nesse arquivo:

export JAVA_HOME=/usr/lib/jvm/<<diretório da sua JDK>>/

Por exemplo:

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_251/

O arquivo .profile é executado após a carga do arquivo /etc/environment, no início de cada seção de terminal do seu usuário.

Essa abordagem fixa a JAVA_HOME em uma única versão dentre as instaladas na máquina.

Se você precisa que a JAVA_HOME seja alterada em conjunto com o sistema de alternativas, você tem duas opções:

  1. Utilize a pasta /usr/bin como conteúdo da JAVA_HOME. Isso é equivalente a preencher a JAVA_HOME como /usr/lib/jvm/<<diretório da sua JDK>>/bin, e pode ser que isso gere algum problema com alguma ferramenta que utilize essa variável.
  2. Preencha a JAVA_HOME com $(readlink -f /usr/bin/java | sed "s:bin/java::"). Essa abordagem lê o link simbólico do sistemas de alternativas ativo no momento, e utiliza esse link, sem a parte /bin/java como conteúdo da JAVA_HOME.
    • Se essa opção for utilizada, a JAVA_HOME não será automaticamente alterada após o chaveamento de versão (lembre-se que as variáveis de ambiente são carregadas no início da seção de terminal). Para atualizar o conteúdo da JAVA_HOME você vai precisar:
      • Abrir outro terminal, ou
      • Rodar o comando source /etc/environment ou source ~/.profile (dependendo de onde você configurou sua variável).

Para verificar o conteúdo da JAVA_HOME, digite o comando echo $JAVA_HOME.

Caso esteja utilizando a opção de $(readlink -f /usr/bin/java | sed "s:bin/java::"), pode acontecer que, na carga da seção de terminal, o conteúdo da JAVA_HOME apareça como a string $(readlink -f /usr/bin/java | sed "s:bin/java::"), ou seja, sem a execução desse script. Caso experimente esse comportamento anômalo, rode o comando source /etc/environment ou source ~/.profile (dependendo de onde você configurou sua variável), para atualizar o valor da variável.

Automatizando o Chaveamento

Como o chaveamento de versão exige a execução de dois (ou três, a depender do uso e da necessidade de se atualizar a JAVA_HOME) comandos, o ideal é criar um script bash para evitar esquecimentos.

Crie, em sua pasta de usuário, um arquivo chamado trocaJava.sh, e marque esse arquivo como executável (botão direito no Nautilus, opção Propriedades. Depois, na aba Permissões, marque Permitir execução do arquivo como um programa). Copie o código a seguir para esse arquivo:

#!/bin/bash

sudo update-alternatives --config java

sudo update-alternatives --config javac

# Se vc usa JAVA_HOME como `$(readlink -f /usr/bin/java | sed "s:bin/java::")`
source /etc/environment #ou ~/.profile dependendo de onde foi feita a configuração.

echo 'JAVA_HOME='
echo $JAVA_HOME

Execute esse script a partir de qualquer lugar com ~/trocaJava.sh.

Instalando via .deb

Métodos antigos

Este processo de instalação está depreciado por restrições de licença da Oracle.

Para a instalação do Java Oracle, devemos remover o OpenJDK.

sudo apt remove --purge openjdk-*

Agora, vamos instalar o Java Oracle (JDK 8).

echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | sudo tee -a /etc/apt/sources.list
echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | sudo tee -a /etc/apt/sources.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886

Se der problema no último comando, rode:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886

A partir da java 10 o repositório muda para:

sudo add-apt-repository ppa:linuxuprising/java
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EA8CACC073C3DB2A

Após adicionar os repositórios e a key, atualize a lista de pacotes:

sudo apt update

Instale o JDK 8.

sudo apt install oracle-java8-installer

Após o término, verifique a instalação.

java -version
javac -version

Desinstalando o Pacote oracle-java8-installer

Verifique a versão instalada:

sudo dpkg --list | grep -i jdk

Desinstale:

sudo apt purge oracle-java8-installer
sudo apt autoremove

Verifique a desinstalação:

sudo dpkg --list | grep -i jdk

Ao final, remova o repositório PPA.

⚠️ **GitHub.com Fallback** ⚠️