Installare Java su Ubuntu / Debian

28-04-2020 installazione java ubuntu debian OpenJDK

In questi giorni ho fatto un po’ di esperimenti con Java e mi sono accorto di avere una versione troppo nuova di OpenJDK per un’utility che volevo usare. Stavo tentando di usare il comando wsimport, in un prossimo articolo ti spiegherò a cosa serve e perchè mi è servito.

Ho fatto delle ricerche ed ho scoperto che wsimport è stato rimosso a partire da Java 11. Non finisce qui, lanciando qualche altro comando da terminale mi sono anche accorto che la variabile d’ambiente JAVA_HOME nel mio sistema non era correttamente settata.

Ti spiegherò quindi:

  • come installare una specifica versione di OpenJDK, affiancandola (se presente) a quella già installata
  • switchare tra una versione e l’altra di OpenJDK
  • impostare correttamente le variabili di ambiente

Come installare Java

Se vuoi installare la versione di default per la distribuzione che stai utilizzando ti basta digitare nel terminale:

sudo apt install default-jre

per verificare l’installazione ti basta dare java --version:

antonio@xps14:~$ java --version
openjdk 11.0.6 2020-01-14
OpenJDK Runtime Environment (build 11.0.6+10-post-Ubuntu-1ubuntu118.04.1)
OpenJDK 64-Bit Server VM (build 11.0.6+10-post-Ubuntu-1ubuntu118.04.1, mixed mode, sharing)

se ti serve anche la jdk:

sudo apt install default-jdk

anche qui per verificare l’avvenuta installazione ti basta dare javac --version:

antonio@xps14:~$ javac --version
javac 11.0.6

Se, come nel mio caso, vuoi installare una specifica versione di OpenJDK allora devi fare così (nel mio esempio installo la 8):

sudo apt install openjdk-8-jre

per la jdk:

sudo apt install openjdk-8-jdk

Qui puoi trovare la lista delle OpenJDK che puoi installare e le relative date di fine del supporto.

Come passare da una versione all’altra di Java

Terminale alla mano, il comando è sudo update-alternatives --config java:

antonio@xps14:~$ sudo update-alternatives --config java 
Sono disponibili 2 scelte per l'alternativa java (che fornisce /usr/bin/java).

  Selezione    Percorso                                        Priorità  Stato
------------------------------------------------------------
  0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      modalità automatica
* 1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      modalità manuale
  2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      modalità manuale

Premere Invio per mantenere il valore predefinito[*] o digitare il numero della selezione:      

per impostare la versione di Java che ti interessa digita il numero corrispondente.

Stessa cosa vale per la JDK sudo update-alternatives --config javac:

antonio@xps14:~$ sudo update-alternatives --config javac
Sono disponibili 2 scelte per l'alternativa javac (che fornisce /usr/bin/javac).

  Selezione    Percorso                                      Priorità  Stato
------------------------------------------------------------
  0            /usr/lib/jvm/java-11-openjdk-amd64/bin/javac   1101      modalità automatica
* 1            /usr/lib/jvm/java-11-openjdk-amd64/bin/javac   1101      modalità manuale
  2            /usr/lib/jvm/java-8-openjdk-amd64/bin/javac    1081      modalità manuale

Premere Invio per mantenere il valore predefinito[*] o digitare il numero della selezione: 

Puoi, in alternativa, digitare il comando:

sudo update-alternatives -l

ti farà vedere la lista delle versioni di Java installate sul tuo sistema:

antonio@xps14:~$ sudo update-java-alternatives -l
java-1.11.0-openjdk-amd64      1111       /usr/lib/jvm/java-1.11.0-openjdk-amd64
java-1.8.0-openjdk-amd64       1081       /usr/lib/jvm/java-1.8.0-openjdk-amd64

per cambiare versione quindi devi digitare sudo update-java-alternatives -s <nome della versione che ti interessa>, dopo il paramentro -s devi inserire uno dei nomi che ti sono apparsi dalla precedente lista, esempio:

sudo update-java-alternatives -s java-1.8.0-openjdk-amd64

Questa seconda alternativa che ti ho fornito ti permette di automatizzare e velocizzare il cambio di versione, magari puoi crearti un alias o inserirli in qualche script bash.

alias java8='sudo update-java-alternatives -s java-1.8.0-openjdk-amd64'
alias java11='sudo update-java-alternatives -s java-1.11.0-openjdk-amd64'

Variabili d’ambiente

A questo punto l’ultima cosa che devi fare è impostare le variabili d’ambiente. Molto semplice.

  • per OpenJDK 11 il path è: /usr/lib/jvm/java-11-openjdk-amd64/bin/java.
  • per OpenJDK 8 il path è: /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java.

Sempre nel nostro bel terminale:

sudo nano /etc/environment

e alla fine del file, in una riga vuota, incollerai:

JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64/bin/java"

infine salva e chiudi. Per verificare che tutto sia andato a buon fine echo $JAVA_HOME:

antonio@xps14:~$ echo $JAVA_HOME
/usr/lib/jvm/java-11-openjdk-amd64/bin/java

Ora, anche tu, dovresti essere riuscito a riparare o installare Java sul sistema.

Ti segnalo anche che, insieme a questo articolo ho anche pubblicato una piccola modifica al sito. Nelle pagine del blog, ho inserito gli articoli correlati in una card.

Ti piace il nuovo layout? Scrivimelo nei commenti 😃

Buona programmazione!

AP

Se non visualizzi il blocco dei commenti è perchè non hai accettato i cookies.
Cancella le preferenze del tuo browser per questo sito, aggiorna la pagina ed accetta i cookies.