Installare Java 17 su Debian 13 e Debian 12

Pubblicato il Aggiornato il 5 min di lettura

Debian 12 include OpenJDK 17, Debian 13 non più. Ecco come installare Java 17 su entrambe le versioni, con apt oppure tramite il repository Adoptium con Eclipse Temurin.

Vuoi installare Java 17 sul tuo server Debian? Una premessa importante: se sia sufficiente un semplice apt install dipende dalla versione di Debian che usi. Debian 12 (Bookworm) include OpenJDK 17, Debian 13 (Trixie) invece non più. Questa guida ti mostra la strada giusta per entrambi i casi.

Requisiti

Ti serve un accesso SSH con privilegi di root (oppure un utente con permessi sudo) su un Debian aggiornato. Consigliamo Debian 13 "Trixie" e Debian 12 "Bookworm". Debian 10 ha raggiunto il fine supporto a giugno 2024 e non riceve più aggiornamenti di sicurezza regolari, quindi non è più adatto all'uso in produzione.

Quale versione di Debian gira sul tuo sistema te lo dice questo comando:

cat /etc/os-release

Aggiorna poi l'elenco dei pacchetti e installa gli aggiornamenti disponibili:

apt update && apt upgrade -y

Quale versione di Java include ogni Debian?

Debian sostituisce le versioni di OpenJDK incluse a ogni nuova release principale. Una guida che consiglia genericamente apt install openjdk-17-jre-headless fallisce quindi su Debian 13. Questa panoramica mostra che cosa si trova davvero nei repository ufficiali (situazione a luglio 2026):

PacchettoDebian 13Debian 12Debian 11
openjdk-8-jre-headlessnon inclusonon inclusonon incluso
openjdk-11-jre-headlessnon inclusonon incluso11.0.31
openjdk-17-jre-headlessnon incluso17.0.1917.0.19
openjdk-21-jre-headless21.0.11non inclusonon incluso
openjdk-25-jre-headless25.0.3non inclusonon incluso

Puoi verificare da solo, in qualsiasi momento, se un pacchetto è disponibile sul tuo sistema:

apt-cache policy openjdk-17-jre-headless

Se accanto a "Candidato" compare un numero di versione, puoi installare subito. Se invece leggi (nessuno), usa la strada con Temurin descritta più avanti.

Installare Java 17 su Debian 12

Su Debian 12 (e allo stesso modo su Debian 11) OpenJDK 17 si trova nel repository ufficiale. Basta un solo comando:

apt install openjdk-17-jre-headless -y

La variante jre-headless contiene solo l'ambiente di esecuzione senza librerie grafiche ed è quindi la scelta leggera e adatta per un server, per esempio per un server Minecraft o un'applicazione web Java.

Se ti serve anche un compilatore, perché compili le applicazioni Java direttamente sul server, installa il JDK completo:

apt install openjdk-17-jdk -y

Installare Java 17 su Debian 13 tramite il repository Adoptium

Debian 13 non contiene più OpenJDK 17, la versione inclusa è Java 21. Se la tua applicazione richiede espressamente Java 17, installa Eclipse Temurin. Si tratta di una build OpenJDK liberamente disponibile, distribuita tramite un repository dedicato e aggiornata poi del tutto normalmente con apt.

Installa prima i pacchetti di supporto e crea la directory per le chiavi dei repository:

apt install -y wget gpg apt-transport-https ca-certificates

mkdir -p /etc/apt/keyrings

Poi scarica la chiave di firma e registra la fonte dei pacchetti. La riga sources rimanda espressamente a questa singola chiave con signed-by=, così la chiave vale esclusivamente per questo repository:

wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc

echo "deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | tee /etc/apt/sources.list.d/adoptium.list

apt update

Subito dopo installi Java 17:

apt install temurin-17-jre -y

Se anche qui ti serve un compilatore, installa invece temurin-17-jdk. Il repository Adoptium mette a disposizione per Debian 13 le versioni dalla 8 alla 26, quindi non dipendi dalla scelta della tua distribuzione. La stessa fonte dei pacchetti è disponibile anche per Debian 12.

Alternativa: usare la versione predefinita di Debian

Se la tua applicazione non richiede una versione precisa di Java, ma semplicemente un Java aggiornato, il metapacchetto è la via più comoda. Tira dentro automaticamente la versione che la tua distribuzione prevede come predefinita:

apt install default-jre-headless -y

A seconda della versione di Debian ottieni questo Java:

DistribuzioneVersione Java tramite default-jre-headless
Debian 13Java 21
Debian 12Java 17
Debian 11Java 11

Su Debian 12 ottieni quindi esattamente il Java 17 desiderato, senza doverti portare dietro il numero di versione nel nome del pacchetto.

Verificare l'installazione

Per concludere, controlla se l'installazione è andata a buon fine. Ti basta interrogare la versione di Java installata:

java -version

Se l'output inizia con openjdk version "17, Java 17 è configurato correttamente ed è pronto all'uso.

Gestire più versioni di Java in parallelo

Se sul server sono installati più JDK, è la gestione delle alternatives a decidere quale versione parte davvero quando richiami java. Tutte le versioni presenti le elenchi così:

update-alternatives --list java

La versione predefinita che vuoi la scegli poi in modo interattivo dall'elenco:

update-alternatives --config java

Se un'applicazione richiede anche la variabile d'ambiente JAVA_HOME, ricava il percorso da questo elenco e inseriscilo in modo permanente in /etc/environment:

JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"

Sei ancora su Debian 11?

Debian 11 "Bullseye" riceve ormai solo aggiornamenti di sicurezza LTS limitati, ma include ancora OpenJDK 17. Il comando è lo stesso di Debian 12:

apt install openjdk-17-jre-headless -y

Metti comunque in programma un aggiornamento a medio termine, così tornerai a ricevere aggiornamenti di sicurezza regolari per tutti i pacchetti.

Errori frequenti e soluzioni

"Unable to locate package openjdk-17-jre-headless" su Debian 13: non è un errore della tua installazione. Debian 13 semplicemente non contiene più questo pacchetto. Installa lì Java 17 tramite il repository Adoptium oppure passa al Java 21 incluso.

Lo stesso messaggio su Debian 12: qui l'elenco locale dei pacchetti è obsoleto o incompleto. Esegui apt update e controlla in /etc/apt/sources.list che la fonte principale della tua versione di Debian sia registrata.

java -version mostra un'altra versione: sul sistema è ancora impostata come predefinita una vecchia installazione di Java. Imposta la versione desiderata con update-alternatives --config java.

Guide che usano apt-key: gli articoli più vecchi aggiungono le fonti esterne con apt-key adv. Questo comando è considerato deprecato da Debian 11 in poi, perché una chiave registrata così diventa valida per tutte le fonti dei pacchetti del sistema. Le guide aggiornate salvano la chiave in /etc/apt/keyrings/ e la richiamano nella riga sources con signed-by=.

La tua applicazione non parte nonostante Java 17: alcuni software controllano la versione di Java all'avvio e pretendono una versione principale precisa. In questo caso dai un'occhiata al file di log dell'applicazione, di solito lì è indicata la versione richiesta esatta.

Domande frequenti

Con quale comando installo Java 17 su Debian?
Dipende dalla tua versione di Debian. Debian 12 e Debian 11 contengono il pacchetto, lì basta apt install openjdk-17-jre-headless -y. Debian 13 non include più OpenJDK 17, quindi lì installi Eclipse Temurin tramite il repository Adoptium.
Perché Debian 13 segnala Unable to locate package openjdk-17-jre-headless?
Perché in Debian 13 questo pacchetto non esiste più. Debian 13 include OpenJDK 21 e OpenJDK 25, ma non OpenJDK 17. Installa lì Java 17 tramite il repository Adoptium con il pacchetto temurin-17-jre oppure passa alla versione inclusa.
Quale versione di Java ottengo con default-jre-headless?
Il metapacchetto punta alla versione predefinita della tua distribuzione: su Debian 13 ottieni Java 21, su Debian 12 Java 17 e su Debian 11 Java 11. Se la tua applicazione non richiede una versione principale fissa, è la strada che richiede meno manutenzione.
Qual è la differenza tra openjdk-17-jre-headless e openjdk-17-jdk?
Il pacchetto jre-headless contiene solo l'ambiente di esecuzione senza librerie grafiche e basta per eseguire applicazioni Java su un server. Il JDK aggiunge il compilatore e serve quando compili i programmi Java direttamente sul server.
Come imposto Java 17 come versione predefinita?
Con update-alternatives --list java vedi tutte le versioni di Java installate. Con update-alternatives --config java scegli poi in modo interattivo la versione desiderata.

Java 17 OpenJDK Eclipse Temurin Java Debian 13 Debian 12 Debian Installare Java