Aggiunta di JAVA_HOME (JDK) in .bashrc

Ho appena installato Ubuntu e Java 7u55 (JDK) e sto cercando di configurare JAVA_HOME come variabile di ambiente.

In ~/.bashrc ho aggiunto:

 # Exports JAVA_HOME=/home/myuser/sandbox/java/7u55/jdk1.7.0_55 export PATH=$PATH:JAVA_HOME 

Eppure quando chiudo il terminale e apro una nuova shell e scrivo which java o java -version Ubuntu non sembra sapere di cosa sto parlando (dice che il programma java può essere trovato in uno dei vari pacchetti e mi chiede di usare sudo apt-get per installarne uno).

Che cosa sto facendo di sbagliato?

Innanzitutto, hai un errore di battitura nella riga di esportazione. Dovrebbe essere

 export PATH=$PATH:$JAVA_HOME/bin 

Nessuno spazio, aggiungi un carattere $ prima di JAVA_HOME, aggiungi /bin

Tuttavia, la correzione sopra la linea potrebbe non risolvere il problema nell’installazione di java. Il modo più semplice per installare java è utilizzare ppa webup8:

 sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java7-installer 

Dopo l’ultimo comando, lo script scaricherà automaticamente il jdk dal sito Web Oracle e lo installerà per te. Puoi leggere il tutorial qui .

Hai impostato la variabile di ambiente JAVA_HOME , ma questo è solo un valore utilizzato dalle applicazioni che vogliono sapere dove sono JRE o JDK.

Il PATH è ciò che sta cercando la tua shell quando cerchi di eseguire gli eseguibili. Quindi quando digiti java -version , sta guardando nella cartella JDK. Nota che java è in realtà all’interno di $JAVA_HOME/bin . Ecco perché non riesce a trovarlo.

Questa è la spiegazione.

La correzione è di aggiungerla al $PATH correttamente:

 export PATH=$PATH:JAVA_HOME/bin 

o per eseguire update-alternatives e aggiungere il percorso JDK alle alternative java del sistema.

Per esempio

 update-alternatives --install "/usr/bin/java" "java" "/home/myuser/sandbox/java/7u55/jdk1.7.0_55/bin/java" 3 

Sqoop non trova jdk ecco perché questo errore sta arrivando. Per default jre usato e non ha il file javac che è necessario per compilare i lavori di sqoop.

Soluzione:

se jdk è installato sul sistema, allora configura lo stesso nel file hadoop-env.sh come:

 # The java implementation to use. Required. export JAVA_HOME=/opt/jdk1.8.0_151/ 

E nel file .bash_profile.

piace:

 PATH=$PATH:$HOME/.local/bin:$HOME/bin:/opt/jdk1.8.0_151/bin 

quindi eseguire la fonte. .bash_profile

questo ora prova che il lavoro di sqoop funzionerà bene.