Java Instalação - alandrade21/docsCompartilhados GitHub Wiki
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
.
sudo apt-get install libcanberra-gtk-module
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.
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
.
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
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:
- Utilize a pasta
/usr/bin
como conteúdo daJAVA_HOME
. Isso é equivalente a preencher aJAVA_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. - 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 daJAVA_HOME
você vai precisar:- Abrir outro terminal, ou
- Rodar o comando
source /etc/environment
ousource ~/.profile
(dependendo de onde você configurou sua variável).
- Se essa opção for utilizada, a
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.
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
.
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
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.