Guida alle tecnologie

Installare Java su CentOS 8: OpenJDK 8, OpenJDK 11 e Oracle JDK 8

5 min read Linux Aggiornato 17 Oct 2025
Installare Java su CentOS 8 (OpenJDK e Oracle JDK)
Installare Java su CentOS 8 (OpenJDK e Oracle JDK)

Icona Java su sfondo blu

Per chi è questa guida

Questa guida è pensata per amministratori di sistema, DevOps e sviluppatori che devono installare o gestire più versioni di Java su server CentOS 8. Definizione rapida: OpenJDK è l’implementazione open-source della piattaforma Java; Oracle JDK è la distribuzione Oracle con alcune differenze commerciali.

Sommario rapido dei comandi

  • Cercare pacchetti: dnf search jdk
  • Installare OpenJDK 11: dnf install java-11-openjdk-devel.x86_64
  • Installare OpenJDK 8: dnf install java-1.8.0-openjdk-devel
  • Cambiare versione attiva: alternatives --config java
  • Installare Oracle JDK locale: dnf localinstall jdk-8u231-linux-x64.rpm

Requisiti

  • Server con CentOS 8.
  • Accesso root o sudo.
  • Connessione Internet per i repository (a meno che non si usi un pacchetto RPM locale).

Installare OpenJDK 11

Cerca prima le versioni disponibili nel repository CentOS 8:

dnf search jdk

Dovresti vedere una lista di pacchetti correlati a OpenJDK, per esempio java-11-openjdk.x86_64 e java-1.8.0-openjdk.x86_64.

Per installare OpenJDK 11 (ambiente di sviluppo incluso) esegui:

dnf install java-11-openjdk-devel.x86_64

Verifica l’installazione con:

java -version

Output di esempio:

openjdk version "11.0.5" 2019-10-15 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.5+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode, sharing)

Note: la versione effettiva varierà nel tempo; i numeri nei sample sono di esempio.

Installare OpenJDK 8

Alcune applicazioni legacy richiedono Java 8. Installa OpenJDK 8 con:

dnf install java-1.8.0-openjdk-devel

Controlla la versione attiva:

java -version

Output di esempio:

openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)

Passare da una versione all’altra

Puoi avere più versioni installate contemporaneamente e scegliere quale versione usare come predefinita con il comando alternatives:

alternatives --config java

Esempio d’interazione:

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
   1           java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.5.10-0.el8_0.x86_64/bin/java)
*+ 2           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el8_0.x86_64/jre/bin/java)

Enter to keep the current selection[+], or type selection number: 1

Seleziona il numero corrispondente alla versione desiderata e premi Invio. Ripeti per javac se hai bisogno che il compilatore punti alla stessa versione:

alternatives --config javac

Installare Oracle JDK 8 (pacchetto RPM locale)

  1. Accedi al sito Oracle e scarica il pacchetto RPM per Java 8: ad esempio jdk-8u231-linux-x64.rpm.
  2. Accetta il contratto di licenza e scarica il file sul server (usando scp o wget da una URL autorizzata).
  3. Installa il pacchetto localmente:
dnf localinstall jdk-8u231-linux-x64.rpm

Verifica:

java -version

Output di esempio:

java version "1.8.0_231"
Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)

Attenzione: Oracle JDK può avere requisiti di licenza e aggiornamenti diversi rispetto a OpenJDK.

Configurare JAVA_HOME e PATH (consigliato)

Per rendere persistente la variabile JAVA_HOME per tutti gli utenti, crea un file in /etc/profile.d:

cat <<'EOF' > /etc/profile.d/java.sh
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export PATH=$JAVA_HOME/bin:$PATH
EOF

chmod +x /etc/profile.d/java.sh

Adatta il percorso di JAVA_HOME alla versione attiva sul tuo sistema (verifica in /usr/lib/jvm/). Dopo la modifica, effettua il logout/login o esegui source /etc/profile.d/java.sh.

Debug e problemi comuni

  • java non trovato: verifica alternatives --display java e che /usr/bin/java punti correttamente.
  • Versione sbagliata per gli script: controlla JAVA_HOME nelle variabili d’ambiente.
  • Conflitti RPM: rimuovi vecchi pacchetti con dnf remove nome-pacchetto prima di installare una versione differente.
  • SELinux: se l’app non parte, controlla gli eventi SELinux (ausearch -m avc -ts recent) e usa audit2allow con attenzione.

Matrice di compatibilità rapida

Versione JavaUso tipicoNote di compatibilità
OpenJDK 11Applicazioni moderne, LTSRaccomandata per nuovi progetti
OpenJDK 8Applicazioni legacyNecessaria per software non aggiornato
Oracle JDK 8Ambienti che richiedono OracleVerificare licenza e supporto

Quando scegliere OpenJDK o Oracle JDK

  • Preferisci OpenJDK per pacchetti open-source, aggiornamenti dai repository e assenza di licenze commerciali.
  • Scegli Oracle JDK solo se un’applicazione richiede espressamente Oracle o si dispone di accordi di supporto.

Procedure consigliate (mini SOP)

  1. Verifica i requisiti dell’applicazione (Java 8 vs Java 11).
  2. Installa la versione appropriata da repository ufficiali: dnf install.
  3. Controlla java -version e which java.
  4. Se servono più versioni, installale entrambe e usa alternatives --config.
  5. Imposta JAVA_HOME in /etc/profile.d e documenta la configurazione.
  6. Testa l’app in ambiente di staging prima di passare in produzione.

Checklist per ruoli

  • Sviluppatore
    • Verificare requisito minimo Java dell’app
    • [ ] Testare build con mvn -v o gradle -v dopo il cambio
  • Sysadmin/DevOps
    • Installare pacchetti via DNF
    • [ ] Configurare alternatives per java e javac
    • [ ] Aggiornare JAVA_HOME e distribuire l’aggiornamento
  • Team Sicurezza
    • Validare policy di licenza per Oracle JDK
    • Verificare CVE per la versione installata

Esempi di comandi utili

  • Elenca JVM installate:
ls -l /usr/lib/jvm/
  • Rimuovi OpenJDK 11 se necessario:
dnf remove java-11-openjdk-devel.x86_64
  • Forzare alternative per java (usare con cautela):
alternatives --set java /usr/lib/jvm/java-11-openjdk-11.0.5.10-0.el8_0.x86_64/bin/java

Decisione veloce (diagramma)

flowchart TD
  A[Hai bisogno di Java?] --> B{La tua app richiede Java 8?}
  B -- Sì --> C[Installa OpenJDK 8]
  B -- Sì e richiede Oracle --> D[Scarica e installa Oracle JDK 8]
  B -- No --> E[Installa OpenJDK 11]
  C --> F[Configura alternatives]
  D --> F
  E --> F
  F --> G[Test in staging]
  G --> H[Deploy]

Brevi criteri di accettazione

  • java -version restituisce la versione desiderata.
  • /usr/bin/java punta alla JVM scelta tramite alternatives.
  • JAVA_HOME è impostato e visibile ai processi applicativi.

Glossario (1 riga ciascuno)

  • JDK: Java Development Kit, include compilatore e strumenti.
  • JRE: Java Runtime Environment, esegue applicazioni Java.
  • OpenJDK: implementazione open-source di Java.
  • Oracle JDK: distribuzione Oracle con licenze commerciali.
  • alternatives: sistema di gestione delle versioni di comandi condivisi in Linux.

Riepilogo

Questa guida copre l’installazione di OpenJDK 11, OpenJDK 8 e Oracle JDK 8 su CentOS 8, come verificare la versione corrente e come passare tra più installazioni usando alternatives. Segui la checklist per ruolo e testa sempre in staging prima di aggiornare sistemi di produzione.

Importante: verifica eventuali requisiti di licenza prima di distribuire Oracle JDK in ambienti di produzione.

Note: per aggiornamenti di sicurezza, preferisci repository ufficiali o canali supportati dal tuo fornitore.

Autore
Redazione

Materiali simili

Installare e usare Podman su Debian 11
DevOps

Installare e usare Podman su Debian 11

Guida rapida a apt-pinning su Debian
Linux

Guida rapida a apt-pinning su Debian

Forzare FSR 4 con OptiScaler: guida completa
Guide.

Forzare FSR 4 con OptiScaler: guida completa

Dansguardian + Squid NTLM su Debian Etch
Rete

Dansguardian + Squid NTLM su Debian Etch

Riparare errore installazione SD su Android
Android

Riparare errore installazione SD su Android

Cartelle di rete con KNetAttach e remote:/
Linux

Cartelle di rete con KNetAttach e remote:/