it-swarm-eu.dev

Come impostare Java_HOME in Linux per tutti gli utenti

Sono nuovo del sistema Linux e sembrano esserci troppe cartelle Java. 

Java -version mi dà:

  • Versione Java "1.7.0_55"
  • OpenJDK Runtime Environment (rhel-2.4.7.1.el6_5-x86_64 u55-b13)
  • Server OpenJDK a 64 bit VM (build 24.51-b03, modalità mista)

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?

113
Amruta
  1. find /usr/lib/jvm/Java-1.x.x-openjdk
  2. vim /etc/profile

    Prependio Sudo se connesso come utente non privilegiato, es. Sudo vim

  3. Premi 'i' per entrare in modalità inserimento
  4. inserisci:

    export Java_HOME="path that you found"
    
    export PATH=$Java_HOME/bin:$PATH
    
  5. disconnettersi e riconnettersi, riavviare o utilizzare source /etc/profile per applicare immediatamente le modifiche nella Shell corrente
234
That Dave Guy

Per 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.

75
Eero Aaltonen

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.

28
flob

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/
22
Kyle Falconer

È 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!

9
PyDevSRS

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

5
Steve S

La risposta è data i post precedenti è valida. Ma nessuna risposta è completa rispetto a: 

  1. La modifica di/etc/profile non è consigliata semplicemente per il motivo (come indicato in/etc/profile):
  • 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. *
  1. Quindi, come detto sopra, crea il file /etc/profile.d/custom.sh per le modifiche personalizzate.

  2. 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 ::")

  1. E ricorda di avere#!/bin/bashsul file custom.sh
3
alok ailawadi

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

2
VirangaMahesh

Su Linux aggiungo questa linea al mio ~/.profile:

export Java_HOME=$(readlink -ze /usr/bin/javac | xargs -0 dirname -z | xargs -0 dirname)
2

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
1
Van Peer

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

1
guest

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.

0
swapnil shashank

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
0
Dashrath Mundkar

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
0
Dylan Breugne

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.

0