Ricerca nel sito web

Installa Java JDK 21 (OpenJDK 21) su Ubuntu 22.04|20.04|18.04


Con ogni nuova versione di Java ci sono molte nuove funzionalità, aggiornamenti di sicurezza, ottimizzazioni del linguaggio e miglioramenti, e potenziamenti delle prestazioni. Java 21 LTS ha attraversato una serie di fasi di sviluppo importanti prima del rilascio ufficiale in disponibilità generale (GA). Ogni sei mesi viene rilasciata una nuova versione di Java, ma il modello delle versioni LTS è ogni tre anni. Al momento dell'aggiornamento di questo articolo, l'ultima versione LTS di Java è JDK 21.

Questo articolo è stato creato per servire come riferimento aggiornato per l'installazione di JDK 21 su Ubuntu 22.04, Ubuntu 20.04 e Ubuntu 18.04. Per tutte le nuove funzionalità, consulta le note di rilascio ufficiali di Oracle Java. Java 21 è reso possibile grazie al contributo di molti individui e organizzazioni nella comunità OpenJDK.

La Guida Definitiva al Desktop Ubuntu

Diventa un esperto di Ubuntu - dalla splendida personalizzazione del desktop alla potente automazione del terminale. Perfetto per sviluppatori, amministratori di sistema e utenti esperti che vogliono il controllo totale del loro ambiente di lavoro.

Installa Oracle JDK 21 LTS su Ubuntu 22.04|20.04|18.04

Oracle fornisce i binari JDK 21 gratuitamente per l'installazione e l'uso in produzione e anche per la ridistribuzione, senza alcun costo, secondo i Termini e Condizioni senza Tassa di Oracle (NFTC). Visita la pagina di download di Oracle Java e scarica l'ultimo pacchetto DEB del Java Development Kit 21.

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

Usa lo strumento di installazione dei pacchetti apt per installare Java JDK 21 LTS sul tuo sistema Ubuntu.

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

Verifica che l'installazione non dia alcun errore nell'output:

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...

Conferma l'installazione controllando la versione predefinita di 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 hai bisogno di impostare Java Home, dovrebbe essere /usr/lib/jvm/jdk-21-oracle-x64/

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

Per rendere permanenti le impostazioni, inserisci i valori nel file ~/.bashrc o /etc/profile.

Installa OpenJDK 21 LTS su Ubuntu 22.04|20.04|18.04

OpenJDK è un'implementazione open-source della Java Platform, Standard Edition, con licenza GNU General Public License. OpenJDK 21 è una versione open-source pronta per la produzione del Java Development Kit, versione 21, un'implementazione della Java SE 21 Platform.

Per installare OpenJDK 21, visita la pagina di rilascio di OpenJDK 21 e scarica l'ultima versione disponibile per l'architettura della tua CPU.

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

Estrai l'archivio scaricato.

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

Sposta la cartella creata dopo l'estrazione

sudo mv jdk-21.0.2 /usr/local/

Imposta le variabili d'ambiente all'interno della directory /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

Sorgente i file per rendere le variabili disponibili nella sessione shell corrente.

source /etc/profile.d/jdk21.sh

Conferma la versione di Java utilizzando il seguente 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)

Passaggio tra le versioni di Java

Su sistemi con più versioni di Java installate, è possibile passare da una versione all'altra utilizzando il comando update-java-alternatives.

Per prima cosa elenca tutte le versioni di 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

Ad esempio, per impostare la versione Java 21 come predefinita, utilizza:

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

Conferma che la modifica è avvenuta con successo.

# 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)

Conclusione

Per progettazione, Java è un linguaggio di programmazione facile da usare e da comprendere. Divertiti a scrivere le tue applicazioni in Java 21, a compilarle, a fare il debug e, si spera, a eseguirle negli ambienti di Produzione. Con Java è facile creare programmi modulari e codice riutilizzabile su qualsiasi piattaforma. Speriamo che questo articolo sia stato utile e vogliamo ringraziarti per aver visitato il nostro sito web.