Sono nuovo del sistema Linux e sembrano esserci troppe cartelle Java.
Java -version mi dà:
Quando sto cercando di creare un progetto Maven, sto ricevendo un errore:
Error: Java_HOME is not defined correctly.
We cannot execute /usr/Java/jdk1.7.0_05/bin/Java
Potresti dirmi quali file devo modificare per root e come utente non root e dove si trova esattamente Java?
find /usr/lib/jvm/Java-1.x.x-openjdk
vim /etc/profile
Prependio Sudo se connesso come utente non privilegiato, es. Sudo vim
inserisci:
export Java_HOME="path that you found"
export PATH=$Java_HOME/bin:$PATH
source /etc/profile
per applicare immediatamente le modifiche nella Shell correntePer tutti gli utenti, ti consiglio di inserire la seguente riga in /etc/profile
export Java_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
Questo si aggiornerà in modo dinamico e funziona bene con alternative system. Si noti però che l'aggiornamento avverrà solo in una nuova shell di accesso.
Potresti usare/etc/profile o meglio un file come /etc/profile.d/jdk_home.sh
export Java_HOME=/usr/Java/jdk1.7.0_05/
Devi ricordare che questo file è caricato solo con nuove shell di login .. Quindi dopo bash -l o una nuova sessione di gnome e che non cambia con le nuove versioni di Java.
Nessuna delle altre risposte era "adesiva" per me in RHEL 7, anche l'impostazione di Java_HOME
e PATH
direttamente in /etc/profile
o ~/.bash_profile
non funzionava. Ogni volta che provavo a verificare se Java_HOME
era impostato, sarebbe vuoto:
$ echo $Java_HOME
(<-- no output)
Quello che dovevo fare era impostare un script in /etc/profile.d/jdk_home.sh
:
#!/bin/sh
export Java_HOME=/opt/ibm/Java-x86_64-60/
export PATH=$Java_HOME/bin:$PATH
Inizialmente ho trascurato la prima riga (il #!/bin/sh
), e non funzionerà senza di essa.
Ora sta funzionando:
$ echo $Java_HOME
/opt/ibm/Java-x86_64-60/
È molto facile impostare il percorso in Linux. Fai come segue:
Step-1Apri terminale e digita Sudo gedit .bashrc
Step-2Ti chiederà la password. Dopo aver digitato la password, verrà aperto il file bash. Quindi vai alla fine e digita di seguito
step-3
export Java_HOME= /usr/lib/jvm/Java-8-openjdk-AMD64/
export PATH="$PATH:$Java_HOME/bin"
step-4Quindi salva il file e esce dal file
Sopra è per un singolo utente. Per tutti gli utenti, devi seguire i passaggi seguenti
Passaggio 1 gedit /etc/profile
Passaggio 2 export Java_HOME=/usr/lib/jvm/Java-8-openjdk-AMD64/
Passaggio 3 export PATH=$PATH:$Java_HOME/bin
Spero che questo ti aiuti. Grazie!
Facendo ciò che fa Oracle (come ex dipendente Sun non posso abituarmi a quello)
ln -s latestJavaRelease/usr/Java/default
Dove lastJavaRelease è la versione che si desidera utilizzare
quindi esporta Java_HOME =/usr/Java/predefinito
La risposta è data i post precedenti è valida. Ma nessuna risposta è completa rispetto a:
- NON è una buona idea cambiare questo file a meno che tu non sappia cosa stai facendo. È molto meglio creare uno script di shell custom.sh in /etc/profile.d/ per apportare modifiche personalizzate al proprio ambiente, come questo impedirà la necessità di unire in futuri aggiornamenti. *
Quindi, come detto sopra, crea il file /etc/profile.d/custom.sh per le modifiche personalizzate.
Ora, per essere sempre aggiornato con le versioni più recenti di Java installate, non inserire mai il percorso assoluto, ma utilizzare:
#if facendo jdk come casa Java
esportazione Java_HOME = $ (readlink -f/usr/bin/javac | sed "s:/bin/javac ::")
OR
#if facendo jre come a casa Java
export Java_HOME = $ (readlink -f/usr/bin/Java | sed "s:/bin/Java ::")
Copia il percorso del file del cestino che hai installato
"IL TUO PERCORSO"
aprire il terminale e modificare il file di ambiente digitando il seguente comando,
"Sudo nano/etc/environment"
In questo file, aggiungi la seguente riga (sostituendo YOUR_PATH con il percorso appena copiato):
JAVA_HOME = "YOUR_PATH"
Questo dovrebbe essere sufficiente per impostare la variabile di ambiente. Ora ricarica questo file:
"source/etc/environment"
ora provalo eseguendo:
echo $ Java_HOME
Su Linux aggiungo questa linea al mio ~/.profile:
export Java_HOME=$(readlink -ze /usr/bin/javac | xargs -0 dirname -z | xargs -0 dirname)
Pubblicare come risposta, in quanto non ho il privilegio di commentare.
Punto da notare : seguire la risposta accettata pubblicata da "That Dave Guy".
Dopo aver impostato le variabili, assicurarsi di impostare le autorizzazioni appropriate alla directory Java in cui è installata.
chmod -R 755 /usr/Java
Mentre siamo in grado di impostare Java_HOME, consentitemi di condividere alcuni vantaggi dell'impostazione di Java_HOME o di qualsiasi altra variabile di ambiente:
1) È facile aggiornare JDK senza influire sull'avvio dell'applicazione e sul file di configurazione che punta a Java_HOME. devi solo scaricare la nuova versione e assicurarti che Java_HOME punti alla nuova versione di Java. Questo è il miglior vantaggio dell'utilizzo di variabili o collegamenti ambientali.
2) La variabile Java_HOME è breve e concisa anziché il percorso completo alla directory di installazione JDK.
3) La variabile Java_HOME è indipendente dalla piattaforma, ad esempio se lo script di avvio utilizza Java_HOME e può essere eseguito su Windows e UNIX senza alcuna modifica, è sufficiente impostare Java_HOME sul rispettivo sistema operativo.
Per saperne di più: http://javarevisited.blogspot.com/2012/02/how-to-set-javahome-environment-in.html#ixzz4BWmaYIjH
Passaggio 1: verifica la versione Java corrente di "echo $ Java_HOME"
Passaggio 2: vim/etc/profile
Passo 3 - Alla fine del file troverai Esporta Java_HOME, dobbiamo fornire il nuovo percorso qui, assicurati che non sia relativo.
Passaggio 4: Salva ed esci: wq
Passaggio 5: "source/etc/profile /", questo eseguirà la modifica
Passo 6 - Ancora una eco $ Java_HOME - il cambiamento sarebbe stato riflesso.
Basta aggiungere questo comando al tuo dockerfile
RUN echo "Java_HOME=$(readlink -f /usr/bin/Java | sed "s:bin/Java::")" | tee -a /etc/profile && source /etc/profile && echo $Java_HOME
Questo è uno script molto semplice per risolvere il problema
export Java_HOME_BIN=`which Java`
export Java_HOME_DIR=`dirname $Java_HOME_BIN`
export Java_HOME=`dirname $Java_HOME_DIR`
E per i test:
echo $Java_HOME
Probabilmente è una buona idea per l'origine di qualsiasi profilo che si modifica per salvare dover utilizzare un nuovo login.
o: source /etc/or./etc /
Dov'è il profilo che hai modificato.