Pesquisa de sites

Instalar o Java JDK 21 (OpenJDK 21) no Ubuntu 22.04|20.04|18.04


Com cada nova versão do Java existem muitas novas funcionalidades, atualizações de segurança, otimizações e melhorias da linguagem, e melhorias de desempenho. O Java 21 LTS passou por uma série de etapas de desenvolvimento rigorosas antes do lançamento oficial de Disponibilidade Geral (GA). A cada seis meses existe uma nova versão do Java, mas o padrão das versões LTS ocorre de três em três anos. Ao atualizar este artigo, a versão LTS mais recente do Java é o JDK 21.

Este artigo foi criado para servir como uma referência atualizada para a instalação do JDK 21 no Ubuntu 22.04, Ubuntu 20.04 e Ubuntu 18.04. Para todas as novas funcionalidades, consulte as notas de lançamento oficiais do Java da Oracle. O Java 21 é possível graças às contribuições de muitas pessoas e organizações na Comunidade OpenJDK.

O Manual Definitivo do Ambiente de Trabalho Ubuntu

Domine o Ubuntu como um profissional - desde a personalização bela do ambiente de trabalho até à automação poderosa do terminal. Perfeito para desenvolvedores, administradores de sistemas e utilizadores avançados que querem controlo total do seu espaço de trabalho.

Instalar o Oracle JDK 21 LTS no Ubuntu 22.04|20.04|18.04

A Oracle disponibiliza os binários do JDK 21 gratuitamente para instalar e utilizar em produção e até redistribuir, sem qualquer custo, nos termos e condições da Oracle sem taxas (NFTC). Visite a página de downloads do Oracle Java e obtenha o pacote DEB mais recente do Java Development Kit 21.

wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.deb

Use a ferramenta de instalação de pacotes apt para instalar o Java JDK 21 LTS no seu sistema Ubuntu.

sudo apt install ./jdk-21_linux-x64_bin.deb

Verifique se a instalação não apresenta erros na saída:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'jdk-21' instead of './jdk-21_linux-x64_bin.deb'
The following NEW packages will be installed:
  jdk-21
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/168 MB of archives.
After this operation, 347 MB of additional disk space will be used.
Get:1 /root/jdk-21_linux-x64_bin.deb jdk-21 amd64 21.0.1-ga [168 MB]
Selecting previously unselected package jdk-21.
(Reading database ... 39280 files and directories currently installed.)
Preparing to unpack /root/jdk-21_linux-x64_bin.deb ...
Unpacking jdk-21 (21.0.1-ga) ...
Setting up jdk-21 (21.0.1-ga) ...
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jar to provide /usr/bin/jar (jar) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jarsigner to provide /usr/bin/jarsigner (jarsigner) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/java to provide /usr/bin/java (java) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/javac to provide /usr/bin/javac (javac) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/javadoc to provide /usr/bin/javadoc (javadoc) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/javap to provide /usr/bin/javap (javap) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jcmd to provide /usr/bin/jcmd (jcmd) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jconsole to provide /usr/bin/jconsole (jconsole) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jdb to provide /usr/bin/jdb (jdb) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jdeprscan to provide /usr/bin/jdeprscan (jdeprscan) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jdeps to provide /usr/bin/jdeps (jdeps) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jfr to provide /usr/bin/jfr (jfr) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jhsdb to provide /usr/bin/jhsdb (jhsdb) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jimage to provide /usr/bin/jimage (jimage) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jinfo to provide /usr/bin/jinfo (jinfo) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jlink to provide /usr/bin/jlink (jlink) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jmap to provide /usr/bin/jmap (jmap) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jmod to provide /usr/bin/jmod (jmod) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jpackage to provide /usr/bin/jpackage (jpackage) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jps to provide /usr/bin/jps (jps) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jrunscript to provide /usr/bin/jrunscript (jrunscript) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jshell to provide /usr/bin/jshell (jshell) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jstack to provide /usr/bin/jstack (jstack) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jstat to provide /usr/bin/jstat (jstat) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jstatd to provide /usr/bin/jstatd (jstatd) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/jwebserver to provide /usr/bin/jwebserver (jwebserver) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/keytool to provide /usr/bin/keytool (keytool) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/rmiregistry to provide /usr/bin/rmiregistry (rmiregistry) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/bin/serialver to provide /usr/bin/serialver (serialver) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-21-oracle-x64/lib/jexec to provide /usr/bin/jexec (jexec) in auto mode
Scanning processes...
Scanning linux images...

Confirme a instalação verificando a versão padrão do Java.

$ java --version
java 21.0.1 2023-10-17 LTS
Java(TM) SE Runtime Environment (build 21.0.1+12-LTS-29)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.1+12-LTS-29, mixed mode, sharing)

Se precisar de definir o Java Home, deverá ser /usr/lib/jvm/jdk-21-oracle-x64/

export JAVA_HOME=/usr/lib/jvm/jdk-21-oracle-x64
export PATH=$PATH:$JAVA_HOME/bin

Para tornar persistente, defina os valores no ficheiro ~/.bashrc ou /etc/profile.

Instalar o OpenJDK 21 LTS no Ubuntu 22.04|20.04|18.04

OpenJDK é uma implementação de código aberto da Plataforma Java, Edição Standard, licenciada sob a Licença Pública Geral GNU. O OpenJDK 21 é uma versão de produção pronta de código aberto do Kit de Desenvolvimento Java, versão 21, uma implementação da Plataforma Java SE 21.

Para instalar o OpenJDK 21, visite a página de lançamentos do OpenJDK 21 e obtenha a versão mais recente disponível para a arquitetura da sua CPU.

wget https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-x64_bin.tar.gz

Extrair o arquivo descarregado.

tar xvf openjdk-21.0.2_linux-x64_bin.tar.gz

Mova a pasta criada após a extração

sudo mv jdk-21.0.2 /usr/local/

Defina variáveis de ambiente dentro do diretório /etc/profile.d/.

$ sudo vim /etc/profile.d/jdk21.sh
export JAVA_HOME=/usr/local/jdk-21.0.2
export PATH=$PATH:$JAVA_HOME/bin

Carregue os ficheiros para tornar as variáveis disponíveis na sua sessão atual do shell.

source /etc/profile.d/jdk21.sh

Confirme a versão do Java utilizando o seguinte comando.

$ java --version
openjdk 21.0.2 2024-01-16
OpenJDK Runtime Environment (build 21.0.2+13-58)
OpenJDK 64-Bit Server VM (build 21.0.2+13-58, mixed mode, sharing)

Alternar entre versões do Java

Em sistemas com várias versões do Java instaladas, pode alternar entre as versões instaladas, utilizando o comando update-java-alternatives.

Primeiro, liste todas as versões do Java:

$ sudo update-java-alternatives --list
java-1.11.0-openjdk-amd64      1111       /usr/lib/jvm/java-1.11.0-openjdk-amd64
jdk-21-oracle-x64              352329728  /usr/lib/jvm/jdk-21-oracle-x64

Como exemplo, para definir a versão 21 do Java como predefinida, use:

sudo update-java-alternatives --set  /usr/lib/jvm/jdk-21-oracle-x64

Confirme se a alteração foi bem-sucedida.

# Before
$ java --version
openjdk 11.0.21 2023-10-17
OpenJDK Runtime Environment (build 11.0.21+9-post-Ubuntu-0ubuntu122.04)
OpenJDK 64-Bit Server VM (build 11.0.21+9-post-Ubuntu-0ubuntu122.04, mixed mode, sharing)

# After
$ java --version
java 21.0.1 2023-10-17 LTS
Java(TM) SE Runtime Environment (build 21.0.1+12-LTS-29)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.1+12-LTS-29, mixed mode, sharing)

Conclusão

Por design, o Java é uma linguagem de programação fácil de usar e de compreender. Desfrute de escrever as suas aplicações em Java 21, compilar, depurar e, com sorte, executá-las em ambientes de Produção. Com o Java, é fácil criar programas modulares e código reutilizável em qualquer plataforma. Esperamos que este artigo tenha sido útil e gostaríamos de lhe agradecer por visitar o nosso site.