ATUALIZAÇÃO : instalação sem privilégios de root abaixo
Aconselho você a não instalar pacotes manualmente no sistema ubuntu se já houver um repositório (semi-oficial) capaz de resolver seu problema. Além disso, use o Oracle JDK para desenvolvimento, apenas para evitar problemas de compatibilidade (muito esporádicos) (eu tentei muitos anos atrás, com certeza é melhor agora).
Adicione o repo webupd8 ao seu sistema:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
Instale sua versão preferida de jdk (versões de java-6 a java-9 disponíveis):
sudo apt-get install oracle-java8-installer
Você também pode instalar várias versões do jdk, misturando as versões do openjdk e do oracle. Em seguida, você pode usar o comando update-java-backups para alternar entre as versões instaladas:
# list available jdk
update-java-alternatives --list
# use jdk7
sudo update-java-alternatives --set java-7-oracle
# use jdk8
sudo update-java-alternatives --set java-8-oracle
Requisitos
Se você tiver add-apt-repository: command not found
certeza de ter software-properties-common
instalado:
sudo apt-get install software-properties-common
Se você estiver usando uma versão mais antiga do Ubuntu:
sudo apt-get install python-software-properties
Instalação JDK sem privilégios de root
Se você não tem direitos de administrador em sua máquina de destino, sua aposta mais simples é usar sdkman
para instalar o openjdk certificado pelo zulu:
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install java
NOTA : o sdkman permite instalar também o Oracle JDK oficial, embora não seja a opção padrão. Veja as versões disponíveis com:
sdk ls java
Instale a versão escolhida com:
sdk install java <version>
Por exemplo:
sdk install java 9.0.1-oracle
Glossário de comandos
sudo <command> [command_arguments]
: executa um comando com o privilégio de superusuário.
add-apt-repository <PPA_id>
: Ubuntu (assim como todos os derivados do Debian e, de um modo geral, todas as distribuições do Linux) tem um repositório principal de pacotes que lidam com coisas como dependências e atualizações de pacotes. No Ubuntu é possível estender o repositório principal usando um PPA (Personal Package Archive) que geralmente contém pacotes não disponíveis no sistema (assim como oracle jdk) ou versões atualizadas dos disponíveis (exemplo: LibreOffice 5 em LTS está disponível apenas através deste PPA ).
apt-get [install|update|upgrade|purge|...]
: é "o" gerenciador de pacote de linha de comando usado para manipular o estado de cada repositório no sistema (instalação / atualização / atualização pode ser vista como uma alteração do estado atual do repositório).
No nosso caso : com o comando sudo add-apt-repository ppa:webupd8team/java
informamos ao sistema que a próxima atualização do repositório deve recuperar as informações dos pacotes também do repo webupd8.
Com sudo apt-get update
, realmente atualizamos o repositório do sistema (todas essas operações requerem privilégios de superusuário, portanto, adicionamos sudo aos comandos).
sudo apt-get install oracle-java8-installer
update-java-transactions (uma versão específica do java das update-alternativas ): no Ubuntu vários pacotes fornecem a mesma funcionalidade (navegar na internet, compilar e-mails, editar um arquivo de texto ou fornecer executáveis java / javac ...). Para permite que o sistema escolha a ferramenta de favoritos do usuário dada uma tarefa específica de um mecanismo utilizando links simbólicos sob /etc/alternatives/
é usado. Tente atualizar o jdk conforme indicado acima (alterne entre java 7 e java 8) e veja como altere a saída deste comando:
ls -l /etc/alternatives/java*
Em nosso caso : sudo update-java-alternatives --set java-8-oracle
atualize os links simbólicos em / etc / alternative para apontar para executáveis java-8-oracle.
Extras:
man <command>
: comece a usar o man para ler uma ajuda muito bem escrita e detalhada sobre (quase) todos os comandos do shell e suas opções (cada comando que menciono nesta pequena resposta tem uma página de manual, tente man update-java-alternatives
).
apt-cache search <search_key>
: consulta o cache APT para procurar um pacote relacionado com a search_key fornecida (pode ser o nome do pacote ou alguma palavra na descrição do pacote).
apt-cache show <package>
: fornece informações APT para um pacote específico (versão do pacote, instalado ou não, descrição).