Domanda Come impostare JAVA_HOME per Java?


Ho installato una versione di Java. Come possiamo impostare il $JAVA_HOME variabile d'ambiente correttamente?


249
2017-08-13 22:31


origine




risposte:


Puoi impostare il tuo JAVA_HOME in /etc/profile come Petronilla Escarabajo suggerisce. Ma la posizione preferita per JAVA_HOME o qualsiasi variabile di sistema è /etc/environment.

Aperto /etc/environment in qualsiasi editor di testo come nano o gedit e aggiungi la seguente riga:

JAVA_HOME="/usr/lib/jvm/open-jdk"

(percorso java potrebbe essere diverso)

Uso source per caricare le variabili, eseguendo questo comando:

source /etc/environment

Quindi controlla la variabile, eseguendo questo comando:

echo $JAVA_HOME

Aggiornare

Di solito la maggior parte dei sistemi Linux sorgente / etc / environment di default. Se il tuo sistema non lo fa aggiungi la seguente linea a ~/.bashrc (Grazie a @pje)

source /etc/environment

345
2017-08-14 02:17



Ricevo: JDK richiesto: 'tools.jar' sembra non essere nel classpath IDEA. Assicurati che JAVA_HOME punti a JDK anziché a JRE. - anon58192932
@advocate - Probabilmente dovresti pubblicare la tua domanda per quello. Ma l'indizio è nel messaggio; devi indicare un JDK, non un JRE. - David Edwards
Quando ho provato ad eseguire Android Studio (che ha IntelliJ IDEA come base), avevo un messaggio di errore molto simile a @ advocate: "'tools.jar' sembra non essere nel classpath di Android Studio." Dopo aver giocato un sacco con JAVA_HOME senza successo, ho deciso di dare un'occhiata a studio.sh, lo script di shell che avvia Android Studio. Come ipotesi selvaggia, ho impostato JDK_HOME sullo stesso valore previsto per JAVA_HOME e voilà! Ha installato senza grandi problemi. - Hilton Fernandes
Per coloro che sviluppano software, non mettere JAVA_HOME in / etc / environment a meno che non si voglia riavviare ogni volta che si cambia versione di JDK. - HDave
Come altri hanno sottolineato, questo non si attacca tra le sessioni del terminale. Quello che ho fatto per affrontare questo è solo l'aggiunta della linea source /etc/environment all'inizio del mio file di configurazione di bash ~/.bashrc in modo che carichi tutte le impostazioni dell'ambiente all'avvio. Lavorando per me finora. - pje


Impostare JAVA_HOME variabile di ambiente, effettuare le seguenti operazioni:

  1. Avvia Terminal premendo Ctrl+alt+T sulla tua tastiera.
  2. Inserisci il seguente comando:
    $ gksudo gedit /etc/environment
  3. A seconda di dove hai installato il tuo Java, dovrai fornire il percorso completo. Per questo esempio, ho installato Oracle JDK 7 nel /usr/lib/jvm/java-7-oracle directory.
    Scorri fino alla fine del file e inserisci quanto segue:
    JAVA_HOME=/usr/lib/jvm/java-7-oracle
    export JAVA_HOME
  4. Salva il tuo file ed esci gedit.
  5. Infine, ricaricare il PATH di sistema con il seguente comando:
    $ . /etc/environment

Il metodo sopra ti farà risparmiare fastidio nel dover eseguire i comandi ogni volta che accedi al tuo computer.


67
2017-08-13 23:01



Come fa . / etc / ambiente lavoro? - Sudip Bhandari
È l'aggiunta del export comando necessario nel /etc/environment? - pkaramol
@pkaramol Ho dovuto aggiungere export JAVA_HOME su 16.04LTS per caricarlo all'avvio. - adeen-s
@ adeen-s Hai aggiunto export ad una linea in /etc/environment e ha aiutato? Quel file contiene le definizioni delle variabili analizzate come =- coppie nome-valore modificate; i suoi contenuti non sono eseguiti come comandi. (Vedere man pam_env.) Quindi, a meno che tu non lo sia separatamente trattando il file come se fosse uno script (ad esempio passando /etc/environment a bash ./source costruito), non mi aspetto che funzioni. - Eliah Kagan


Se non conosci il percorso e hai solo openJDK installato, puoi digitare update-alternatives --config java e dovresti trovare il percorso. Per impostare la variabile puoi scrivere JAVA_HOME=<PATH> seguito da export JAVA_HOME. Si noti che non c'è spazio quando si dichiara la variabile. Per verificare se la variabile è memorizzata devi semplicemente digitare echo $JAVA_HOME verificare.


30
2017-08-18 21:29



Sembra che sarebbe statico. Se rimuovo openjdk-7 e installa openjdk-9, JAVA_HOME non punta al punto sbagliato? Come può essere reso dinamico? - DavidJ
Da voi modificandolo manualmente. Ancora una volta, TU sei il modo in cui diventa dinamico .... - HDave
Quello che @HDave significa è che in alcuni casi, potresti voler che JAVA_HOME punti a una specifica versione java, quindi l'aggiornamento della dinamica di JAVA_HOME potrebbe non essere quello che desideri. - Maciej
mi piace questa risposta Ho provato con l'eco e ho visto il mio percorso. Tuttavia, sono confuso perché sto ancora ricevendo JAVA_HOME la variabile d'ambiente non è impostata quando eseguo mvn -version - Winnemucca
Ho scritto questa risposta quando ero più ignorante. L'impostazione della variabile come descritta avrà effetto solo sulla sessione terminale corrente e non verrà mantenuta. Il modo corretto è quello di correre update-alternatives --install <link> <name> <target> <priority>  per esempio: update-alternatives --install /usr/bin/java java /usr/lib/jvm/default-runtime/bin/java 1 - Erro