Come impostare la variabile d'ambiente JAVA_HOME su Mac OS X 10.9?


135

Ho appena acquistato un nuovissimo MacBook Pro.

Questo è il mio primo MAC in assoluto e sto ancora cercando di capire come navigare.

Ad ogni modo, sono anche nuovo a Java e mi sono esercitato sul mio PC Windows prima che morisse definitivamente.

Ora che sono su questo MAC, ho installato il mio JDK e ora devo impostare la JAVA_HOMEvariabile di ambiente.

Non ho idea di cosa fare.

Ho provato a seguire alcune di queste guide e non sono andato molto lontano.

  1. Mkyong.com: come impostare la variabile JAVA_HOME in Mac OSX

  2. YouTube: come impostare le variabili di ambiente su mac, linux, solaris, rhel

  3. YouTube: come impostare le variabili di ambiente su Mac

Sono stato in grado di individuare il terminale e penso di aver creato alcuni file multipli. Ricevo messaggi come questo:


(1) Un altro programma potrebbe modificare lo stesso file. In tal caso, fare attenzione a non finire con due diverse istanze dello stesso file quando si apportano modifiche. Esci o continua con cautela.


(2) Una sessione di modifica per questo file si è arrestata in modo anomalo. In questo caso, utilizzare ": recover" o "vim -r /Users/Erwin/.bash_profile" per ripristinare le modifiche (consultare ": help recovery"). Se lo hai già fatto, elimina il file di scambio "/Users/Erwin/.bash_profile.sw p" per evitare questo messaggio.

Qualcuno può dire passo dopo passo come impostare Java in ambiente Mac OSX?




Risposte:


327

Letteralmente tutto ciò che devi fare è:

echo export "JAVA_HOME=\$(/usr/libexec/java_home)" >> ~/.bash_profile

e riavvia la shell.

Se hai più versioni JDK installate e vuoi che sia una specifica, puoi usare il -vflag in questo java_homemodo:

echo export "JAVA_HOME=\$(/usr/libexec/java_home -v 1.7)" >> ~/.bash_profile

1
Quando dici "shell", intendi che chiudo la finestra del terminale e la riapro? Inoltre, questo aggiunge in modo permanente la variabile di ambiente per il mio jdk?
islander_zero,

1
Sì, questo è ciò che intendo. E sì, questo aggiungerà la variabile per tutte le shell di login per il tuo utente (ovvero, praticamente tutte le circostanze in cui lo vorresti)
Adrian Petrescu,

13
Penso che invece di riavviare il terminale se lo fai source ~/.bash_profilefunzionerebbe, giusto?
Shobhit Puri,

2
@ShobhitPuri Sì, volevo solo renderlo semplice per chi lo chiede.
Adrian Petrescu,

4
echo export "JAVA_HOME=\$(/usr/libexec/java_home -v 1.7)" >> ~/.bash_profileSe hai bisogno di una versione specifica. 1.7 in questo caso.
sebastian,

26

L'ho fatto mettendo

export JAVA_HOME=`/usr/libexec/java_home`

(backtics) nel mio .bashrc. Vedi il mio commento sulla risposta di Adrian.


15

In Mac OSX 10.5 o versioni successive, Apple consiglia di impostare $JAVA_HOME variable to /usr/libexec/java_home, solo esporta $JAVA_HOME in file ~/. bash_profileo ~/.profile.

Apri il terminale ed esegui il comando seguente.

$ vim .bash_profile

export JAVA_HOME=$(/usr/libexec/java_home)

salva ed esci dall'editor vim, quindi esegui il comando source su .bash_profile

$ source .bash_profile

$ echo $JAVA_HOME

/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home

11

Imposta la variabile di ambiente $ JAVA_HOME sul Mac OSX più recente o precedente.

Scarica e installa installa JDK

  1. Innanzitutto, installa JDK
  2. Apri il terminale controlla la versione java

$ java -version

Imposta la variabile d'ambiente JAVA_HOME

  1. Apri il file .zprofile

$ open -t .zprofile

O crea . file zprofile

$ open -t .zprofile

  1. scrivi in ​​.zprofile

export JAVA_HOME=$(/usr/libexec/java_home)

Salvare .zprofile e chiudere il file bash e quindi scrivere nel terminale per funzionare perfettamente .

$ source .zprofile

Test di installazione nel terminale

$ echo $JAVA_HOME  
/Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home

1
Inoltre ho avuto una domanda su cosa sia effettivamente "/ usr / libexec / java_home". Risposta: medium.com/zendesk-engineering/…
ekar

1
/ usr / libexec / java_home è il modo più semplice gestibile di impostare JAVA_HOME su macOS. È possibile utilizzare java_home per: trovare tutti i JDK installati.
Shomu

7

Si consiglia di controllare la shell terminale predefinita prima di impostare la variabile d'ambiente JAVA_HOME , tramite i seguenti comandi:

$ echo $SHELL
/bin/bash

Se il tuo terminale predefinito è / bin / bash (Bash), allora dovresti usare il metodo @Adrian Petrescu .

Se il tuo terminale predefinito è / bin / zsh (Z Shell), allora dovresti impostare queste variabili d'ambiente nel file ~ / .zshenv con i seguenti contenuti:

export JAVA_HOME="$(/usr/libexec/java_home)"

Allo stesso modo, qualsiasi altro tipo di terminale non menzionato sopra, è necessario impostare la variabile di ambiente nel rispettivo file env del terminale.


4

Ho funzionato aggiungendo a ~ / .profile. In qualche modo dopo l'aggiornamento alla beta di El Capitan, non ha funzionato anche se JAVA_HOME è stato definito in .bash_profile.

Se ci sono utenti beta di El Capitan, prova ad aggiungere a .profile


2
Qual è la differenza tra .profile e .bash_profile?
IgorGanapolsky,

3
L'idea è che .profile funziona per tutte le shell (sh, zsh, qualunque cosa); .bash_profile, solo per shell bash.
JohnL4,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.