Como definir a variável de ambiente JAVA_HOME no Mac OS X 10.9?


135

Acabei de comprar um novo MacBook Pro.

Este é o meu primeiro MAC de todos os tempos e ainda estou tentando entender o caminho.

Enfim, eu também sou novo em Java e pratiquei no meu PC com Windows antes que ele morresse permanentemente.

Agora que estou neste MAC, instalei meu JDK e agora preciso definir a JAVA_HOMEvariável de ambiente.

Eu não tenho ideia do que fazer.

Tentei seguir alguns desses guias e não fui muito longe.

  1. Mkyong.com: Como definir a variável JAVA_HOME no Mac OSX

  2. YouTube: como definir variáveis ​​de ambiente no mac, linux, solaris, rhel

  3. YouTube: Como definir variáveis ​​de ambiente no Mac

Consegui localizar o terminal e acho que criei vários arquivos. Estou recebendo mensagens como esta:


(1) Outro programa pode estar editando o mesmo arquivo. Se for esse o caso, tome cuidado para não terminar com duas instâncias diferentes do mesmo arquivo ao fazer alterações. Saia ou continue com cuidado.


(2) Uma sessão de edição para este arquivo falhou. Se for esse o caso, use ": recover" ou "vim -r /Users/Erwin/.bash_profile" para recuperar as alterações (consulte ": help recovery"). Se você já fez isso, exclua o arquivo de troca "/Users/Erwin/.bash_profile.sw p" para evitar esta mensagem.

Alguém pode dizer como definir Java no ambiente Mac OSX passo a passo?




Respostas:


327

Literalmente, tudo o que você precisa fazer é:

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

e reinicie seu shell.

Se você possui várias versões do JDK instaladas e deseja que seja específica, é possível usar o -vsinalizador para java_home:

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

1
Quando você diz "shell", quer dizer que eu fecho a janela do terminal e a reabra? Além disso, isso adiciona permanentemente a variável de ambiente para o meu jdk?
Islander_zero

1
Sim, é isso que eu quero dizer. E sim, isso irá adicionar a variável para todos os shells de login para o usuário (ou seja, praticamente todas as circunstâncias em que você gostaria que fosse)
Adrian Petrescu

13
Eu acho que ao invés de reiniciar o terminal, se você fizer source ~/.bash_profileisso funcionaria, certo?
Shobhit Puri

2
@ShobhitPuri Sim, seria, eu só queria manter as coisas simples para o solicitante.
Adrian Petrescu

4
echo export "JAVA_HOME=\$(/usr/libexec/java_home -v 1.7)" >> ~/.bash_profileSe você precisar de uma versão específica. 1.7 neste caso.
sebastian

26

Eu fiz isso colocando

export JAVA_HOME=`/usr/libexec/java_home`

(backtics) no meu .bashrc. Veja meu comentário sobre a resposta de Adrian.


15

No Mac OSX 10.5 ou posterior, a Apple recomenda definir $JAVA_HOME variable to /usr/libexec/java_home, basta exportar $JAVA_HOME in file ~/. bash_profileou ~/.profile.

Abra o terminal e execute o comando abaixo.

$ vim .bash_profile

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

salve e saia do editor vim e execute o comando source em .bash_profile

$ source .bash_profile

$ echo $JAVA_HOME

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

11

Defina a variável de ambiente $ JAVA_HOME no Mac OSX mais recente ou mais antigo.

Baixe e instale o JDK de instalação

  1. Primeiro, instale o JDK
  2. Versão java de verificação de terminal aberto

$ java -version

Definir variável de ambiente JAVA_HOME

  1. Abrir arquivo .zprofile

$ open -t .zprofile

Ou crie . arquivo zprofile

$ open -t .zprofile

  1. escrever em .zprofile

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

Salve .zprofile e feche o arquivo bash e depois escreva no terminal para funcionar perfeitamente .

$ source .zprofile

Teste de instalação no terminal

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

1
Também tive uma pergunta sobre o que "/ usr / libexec / java_home" realmente é. Resposta: medium.com/zendesk-engineering/…
ekar

1
/ usr / libexec / java_home é a maneira mais simples e sustentável de configurar o JAVA_HOME no macOS. Você pode usar o java_home para: Localizar todos os JDKs instalados.
Shomu

7

É recomendável verificar o shell do terminal padrão antes de definir a variável de ambiente JAVA_HOME , através dos seguintes comandos:

$ echo $SHELL
/bin/bash

Se o seu terminal padrão é / bin / bash (Bash), você deve usar o método @Adrian Petrescu .

Se o seu terminal padrão for / bin / zsh (Z Shell), defina essas variáveis ​​de ambiente no arquivo ~ / .zshenv com o seguinte conteúdo:

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

Da mesma forma, qualquer outro tipo de terminal não mencionado acima, você deve definir a variável de ambiente em seu respectivo arquivo env do terminal.


4

Eu consegui trabalhar adicionando ao ~ / .profile. De alguma forma, após a atualização para o El Capitan beta, ele não funcionou, apesar de JAVA_HOME ter sido definido em .bash_profile.

Se houver algum usuário beta do El Capitan, tente adicionar ao .profile


2
Qual é a diferença entre .profile e .bash_profile?
IgorGanapolsky

3
A idéia é que .profile execute para todos os shells (sh, zsh, qualquer que seja); .bash_profile, apenas para shells bash.
JohnL4

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.