Como instalar o Oracle Java 17 LTS no Ubuntu, Debian, Linux Mint ou Pop!_OS via repositório PPA APT

15 de setembro de 2021

Oracle Java 17 LTS foi lançado recentemente, e está agora disponível para instalar a partir do Linux Uprising Oracle Java PPA no Ubuntu, Debian e distribuições Linux com base nestes, como Pop!_OS, Linux Mint, Zorin OS, etc.

Java 17 é o suporte mais recente de longo prazo (LTS), e com ele, a licença mudou, os binários sendo grátis (sem custo) para usar em produção e grátis (sem custo) para redistribuir até um ano após a próxima versão LTS. Anteriormente (do Oracle Java 11 até agora), a Oracle Java utilizava uma licença comercial que permitia o download e uso sem nenhum custo para desenvolvimento e testes apenas, mas era necessário pagar uma taxa para uso em produção.

Se você preferir usar a compilação de código aberto do JDK, confira as oferecidas por AdoptOpenJDK ou Zulu OpenJDK.

Eu gostaria de notar que, apesar do Oracle Java 17 poder ser redistribuído, os termos do Launchpad PPA não parecem permitir empacotá-lo em um PPA, devido à sua licença. Assim, o Linux Uprising Oracle Java PPA continua a usar um script que baixa automaticamente o Oracle Java (os binários não estão hospedados no Launchpad PPA). Este instalador do Oracle Java 17 é baseado no pacote Webupd8 Java (os créditos vão para seus criadores originais), com pequenas modificações. Este pacote faz automaticamente o download, instala (com alguns ajustes, como a melhor renderização de fontes, adiciona entradas do menu de aplicações, etc.) e, opcionalmente, define o Oracle Java 17 como o padrão Java (roda update-alternatives, as exportações de variável de ambiente JAVA_HOME, etc. ) em seu sistema.

A Oracle faz pacotes DEB para o Oracle Java, no entanto, esses pacotes simplesmente copiam os binários Java para /usr/lib/jvm, sem fazer qualquer outra coisa, por isso é exatamente o mesmo que copiar o diretório Java para esse local sozinho.

Usando este PPA você pode instalar o Oracle Java 17 para arquiteturas x64 e aarch64.

Como instalar o Oracle JDK 17 no Ubuntu, Debian, Linux Mint, Pop!_OS ou Zorin OS usando um repositório PPA APT

Adicione o repositório Linux Uprising Oracle Java PPA e atualize as fontes de software no Ubuntu, Linux Mint, Pop!_OS ou Zorin Os usando os seguintes comandos:

Comandos para usar no terminal

sudo add-apt-repository ppa:linuxuprising/javasudo apt update

Adicione o repositório Linux Uprising Oracle Java PPA (e sua chave) e atualize as fontes de software em Debian e outras distribuições Linux baseadas em Debian (mas não Ubuntu e baseadas no Ubuntu) usando:

Comandos para usar no terminal

su -echo "deb http://ppa.launchpad.net/linuxuprising/java/ubuntu focal main" | tee /etc/apt/sources.list.d/linuxuprising-java.listapt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 73C3DB2Aapt-get updateexit

Agora você pode instalar o Oracle JDK 17 em distribuições Debian/Ubuntu e Linux baseados em estes:

  • Instalar e tornar o Oracle JDK 17 a versão padrão JDK:

Comandos para usar no terminal

sudo apt install oracle-java17-installer --install-recommends

  • Instalar mas não tornar o Oracle JDK 17 a versão padrão JDK:

Comandos para usar no terminal

sudo apt install oracle-java17-installer --no-install-recommends

Você pode controlar se o Oracle JDK 17 é a versão JDK padrão (rodar update-alternatives exporta a variável de ambiente JAVA_HOME, etc.) ou não com a ajuda do pacote oracle-java17-set-default. Se estiver instalada, a Oracle JDK 17 é definida como padrão; remover este pacote, então o Oracle Java 17 não está definido como padrão (a menos que seja a única versão Java no sistema).

Este pacote é definido como um pacote recomendado para o instalador do Oracle Java 17, é por isso que a instalação de oracle-java17-installer com --install-recommends também instala oracle-java17-set-default.

Para verificar qual versão Java é definida como padrão no seu sistema, você pode executar java -version e/ou javac -version. Exemplo com saída que mostra o Oracle Java 17 como padrão:

$ java -versionjava version "17" 2021-09-14 LTSJava(TM) SE Runtime Environment (build 17+35-LTS-2724)Java HotSpot(TM) 64-Bit Server VM (build 17+35-LTS-2724, mixed mode, sharing)$ javac -versionjavac 17

Em alguns casos, o instalador pode falhar para baixar os arquivos do Oracle Java 17 .tar.gz da Oracle. Existem vários problemas possíveis para isso: você está atrás de um roteador/firewall que impede isso, sua conexão com a Internet caiu durante o processo de transferência, etc.

Para contornar isso, você pode baixar este arquivo manualemnte da Oracle por outros meios, por exemplo, indo para casa de um amigo, usando um navegador web com um proxy, etc., e, em seguida, colocar o arquivo .tar.gz do Oracle Java 17 baixado em /var/cache/oracle-jdk17-installer (crie esta pasta como root, se ela não existir), em seguida, instale o pacote oracle-java17-installer do Linux Uprising Oracle Java PPA como explicado acima.

Desta forma, o instalador do Oracle Java 17 usa o arquivo local ao invés de tentar fazer o download. Verifique se o .tar.gz baixado do Oracle Java 17 e o pacote Oracle Java Installer do PPA são ambos a mesma versão, ou então isso não vai funcionar.

Como aceitar a licença do Oracle Java 17 automaticamente

Baixar e instalar o Oracle Java 17 exige que o usuário aceite uma licença. Em alguns casos, como quando se usa isso em um script automatizado, você pode querer aceitar automaticamente a licença usando um comando. Você pode fazer isso usando:

Comandos para usar no terminal

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

Se não funcionar, também pode tentar este comando:

Comandos para usar no terminal

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

Temos vários artigos sobre Java aqui no blog. Veja esse em que ensinamos como instalar/alternar entre várias versões do Java usando SDKMAN.

Esse post foi traduzido do site LinuxUprising.com pela rtland.team.

Linux Uprising Blog
Propaganda
Propaganda