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?

islander_zero
fonte
Duplicado de: superuser.com/questions/240100/…
Frank V
Possível duplicata O que devo definir JAVA_HOME para a OSX
Pascal
explique brevemente: stackoverflow.com/a/59151321/5788247
Shomu

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
Adrian Petrescu
fonte
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.

JohnL4
fonte
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
Rajesh Samson
fonte
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
Shomu
fonte
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.

Jerry Chong
fonte
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

Senthil Acs
fonte
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