Se stai eseguendo programmi Java su Ubuntu usando Eclipse, Maven o Netbeans ecc., dovrai impostare JAVA_HOME sul tuo percorso. Altrimenti, il tuo sistema si lamenterà che "la variabile di ambiente java_home non è impostata".
In questo tutorial per principianti, mostrerò i passaggi per impostare correttamente la variabile Java Home su Ubuntu. I passaggi dovrebbero essere validi anche per la maggior parte delle altre distribuzioni Linux.
Il processo consiste in questi passaggi:
- Assicurarsi che Java Development Kit (JDK) sia installato.
- Trovare la posizione corretta dell'eseguibile JDK.
- Impostare la variabile JAVA_HOME e rendere permanente la modifica.
Passaggio 1:verifica se JDK è installato
Il modo più semplice per verificare se Java Development Kit (JDK) è installato sul tuo sistema Linux è eseguire questo comando:
javac --version
Il comando precedente controlla la versione del compilatore Java. Se è installato, mostrerà la versione Java.

Se il comando mostra un errore come il comando javac non trovato, dovrai installare JDK.

Se Java Compiler non è installato sul tuo sistema, installa Java Development Kit utilizzando questo comando:
sudo apt install default-jdk
Questo installerà la versione Java predefinita nella tua attuale versione di Ubuntu. Se hai bisogno di qualche altra versione specifica di Java, dovrai specificarla durante l'installazione di Java su Ubuntu.
Dopo esserti assicurato che Java Compiler sia presente sul tuo sistema, è il momento di trovarne la posizione.
Passaggio 2:ottieni la posizione dell'eseguibile JDK (compilatore Java)
L'eseguibile si trova solitamente nella directory /usr/lib/jvm. Non ti lascerò da solo per un gioco di indovinelli. Scopriamo invece il percorso dell'eseguibile Java.
Utilizzare il comando which per ottenere la posizione dell'eseguibile del compilatore Java:
which javac
Il problema qui è che la posizione che fornisce è in realtà un collegamento simbolico. Dovrai seguirlo un paio di volte:

E quando trovi un percorso come /usr/lib/jvm/java-11-openjdk-amd64/bin/javac, rimuovi /bin/javac da esso per ottenere qualcosa come /usr/lib/jvm/java-11-openjdk-amd64
Un metodo più semplice è seguire il collegamento simbolico e arrivare al file eseguibile effettivo direttamente usando questo comando:
readlink -f `which javac` | sed "s:/bin/javac::"
Il comando readlink segue un collegamento simbolico. Ho usato ` intorno a quale java . Questo è chiamato sostituzione del comando e sostituisce il comando con il suo output. Sed viene quindi utilizzato per sostituire /bin/javac con nulla e quindi rimuoverlo del tutto.
Nel mio esempio, la posizione del file eseguibile è /usr/lib/jvm/java-11-openjdk-amd64 . Potrebbe essere diverso per te. Copia il percorso corretto che hai ottenuto dal comando sopra nel tuo sistema. Sai, puoi copiare e incollare nel terminale di Ubuntu.
Fase 3:impostazione della variabile JAVA_HOME
Ora che hai la posizione, usala per impostare la variabile di ambiente JAVA_HOME:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/bin/java
Controlla il valore della directory JAVA_HOME:
echo $JAVA_HOME

Prova a eseguire il tuo programma o progetto nello STESSO TERMINALE e verifica se funziona.
Non è ancora finita. La variabile JAVA_HOME che hai appena dichiarato è temporanea. Se chiudi il terminale o avvii una nuova sessione, sarà di nuovo vuoto.
Per impostare la variabile JAVA_HOME "permanentemente", dovresti aggiungerla al file bashrc nella tua home directory.
È possibile utilizzare l'editor Nano per modificare i file nel terminale Linux. Se non lo desideri e adotta un semplice approccio copia-incolla, usa i seguenti comandi:
Eseguire il backup del file bashrc (nel caso in cui lo si incasini, è possibile recuperarlo):
cp ~/.bashrc ~/.bashrc.bak
Quindi, usa il comando echo per aggiungere il comando di esportazione che hai usato all'inizio di questa sezione. Cambia il comando seguente per utilizzare il percorso corretto visualizzato dal tuo sistema in .
echo "export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64" >> ~/.bashrc
Verifica che sia stato aggiunto correttamente alla fine del file:
tail -3 ~/.bashrc
Il comando tail sopra mostrerà le ultime 3 righe del file specificato.
Ecco l'intero output dei tre comandi precedenti.

Ora, anche se si esce dalla sessione o si riavvia il sistema, la variabile JAVA_HOME sarà comunque impostata sul valore specificato. È quello che vuoi, vero?
Tieni presente che se in futuro cambi la versione Java predefinita, dovrai modificare il valore di JAVA_HOME e puntarlo al percorso eseguibile corretto.
Spero che questo tutorial non solo ti abbia aiutato a impostare Java Home, ma ti abbia anche insegnato come lo stai facendo.
Se hai ancora problemi o hai domande o suggerimenti, faccelo sapere nei commenti.