No Mac Sierra, eu tenho / Library / Java / JavaVirtualMachines que possui jdk e System Preferences> Java, o que há de diferente entre esses 2?
vikramvi
diferente questão, obrigado
Olivier Refalo
Não subestime as chances de sua instalação Java não ter sido concluída corretamente. Se nenhuma das excelentes sugestões abaixo parecer funcionar, tente [re] instalar!
MarkHu
Respostas:
1059
Com o pacote opcional Java ou o Oracle JDK instalado, adicionar uma das seguintes linhas ao seu arquivo ~ / .bash_profile configurará a variável de ambiente de acordo.
export JAVA_HOME="$(/usr/libexec/java_home -v 1.6)"
or
export JAVA_HOME="$(/usr/libexec/java_home -v 1.7)"
or
export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)"
Atualização: sinalizador -v adicionado com base na resposta de Jilles van Gurp .
Bom saber. Devo dizer que não estou muito feliz com a lista de recursos do Lion. Há não parece muito lá no caminho de melhorias para o meu uso ...
prodigitalson
1
@ Oliver: ewww :-) Isso é provavelmente a coisa menos útil ... eu sempre tenho várias janelas abertas e organizadas na tela para que eu possa ver várias coisas ao mesmo tempo ... geralmente um layout diferente em todos os espaços.
Prodigitalson
11
isso não funcionou para mim. /System/Library/Frameworks/JavaVM.framework/Home trabalhou.
usar o seguinte comando
7
Também funciona no Maverick!
cbare
3
Para Java 11 e High Sierra, exporte JAVA_HOME = "$ (/ usr / libexec / java_home -v 11)"
Willie Z
112
/usr/libexec/java_homenão é um diretório, mas um executável. Ele gera o JAVA_HOME atualmente configurado e, na verdade, não o altera. É para isso que serve o aplicativo Java Preferences, que, no meu caso, parece quebrado e não altera a JVM corretamente. Ele lista a JVM 1.7, mas eu posso alternar / desarmar, arrastar e soltar tudo o que quero lá, sem realmente alterar a saída de /usr/libexec/java_home.
Mesmo depois de instalar o 1.7.0 u6 do Oracle no Lion e defini-lo como padrão nas preferências, ele ainda retornou o apple 1.6 java para casa. A única correção que realmente funciona para mim é definir JAVA_HOME manualmente:
Teria funcionado se você tivesse instalado o java 6 da Apple. o ponto aqui é que você está usando o oracle java 7.
Olivier Refalo
2
Isso funciona muito bem para mim no Mavricks, mas a localização do script java_home é diferente. export JAVA_HOME="$(/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home)"
Christopher Geada
1
Tentei configurar o maven no mac Yosemite, desta forma, para definir o JAVA_HOME funciona para mim.
Alocus
Obras para me sobre Sierra 10,12 e Java 8
Kanak Sony
41
Nenhuma das respostas acima me ajudou. Suponho que todas as respostas são para idososOS X
Para o OS X Yosemite 10.10, siga estas etapas
Use seu editor de texto favorito para abrir: ~/.bash_profile
//This command will open the file using vim
$ vim ~/.bash_profile
Adicione a seguinte linha no arquivo e salve-a (: seguida de "x" para vim):
export JAVA_HOME=$(/usr/libexec/java_home)
Em seguida, no terminal, digite os dois comandos a seguir para ver a saída:
$ source ~/.bash_profile
$ echo $JAVA_HOME
Na segunda linha, você está atualizando o conteúdo do .bash_profilearquivo.
Eu acho que peguei o seu pb - você usa aspas em vez de aspas 'vs `
Olivier Refalo 16/06/2015
Não, estou usando as aspas corretas. Em vez disso, tentei copiar e colar, não funcionou. Atualizei minha resposta porque funcionou para mim.
Giri
. @OlivierRefalo eu posso ver que você atualizou sua resposta com aspas ( "), mas mesmo sem aspas, ele funciona.
Giri
Muito obrigado . Funcionou para mim em Yosemite 10.10
Vijay
2
Esta é a única solução, que realmente funciona. A adição de caminho por qualquer outra solução será adicionada temporariamente, até que você termine o terminal e o caminho desapareça. Para ser adicionado permanentemente, o caminho deve ser salvo no arquivo .bash_profile. Enquanto isso, usei o nano em vez do vim, pela simplicidade.
O exemplo acima não funcionou para mim com as ferramentas EC2 da Amazon, porque espera bin/javaetc. embaixo JAVA_HOME. /System/Library/Frameworks/JavaVM.framework/Homefuncionou.
Foi leão? você conseguiu o pacote Java oficial da Apple ou o Java6 / 7 da Oracle?
precisa saber é o seguinte
Eu acredito que era o pacote Java da Apple.
Cawflands 02/02
1
@ AndrewH sim, eu achei o mesmo para ser verdade. Instalou o pacote Java da Apple e descobriu o caminho real da biblioteca (por exemplo, para definir -vm em eclipse.ini):
Não recebi sua proposta: como isso é diferente da exportação JAVA_HOME = /usr/libexec/java_home ? o comando / usr / libexec / java_home retorna /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Olivier Refalo
Para visualgc / usr / libexec / java_home: O java.exe encontrado em: / usr / libexec / java_home não está em um diretório JDK. Defina e exporte sua variável de ambiente JVMSTAT_JAVA_HOME para se referir a um diretório que contém o Sun J2SE 1.5.0 JDK (não um JRE) e tente novamente.
EGHM 02/02/12
13
O seguinte funcionou para mim. Estou usando o ZSH no OSX Yosemite com o Java 8 instalado.
O comando a seguir /usr/libexec/java_homeemite o caminho para a página inicial do JDK:
tipo de discordo dessa afirmação "mais atualizável" / usr / libexec / java_home é um exe que retorna um caminho, não um caminho fixo. Além de depender da versão da jvm que você usa, o caminho acima não coincide #
Olivier Refalo 11/10/12
10
JVMs Oracle mais recentes, como 1.7.0_21-b12, parecem instalar aqui:
De fato - e a /usr/libexec/java_homeferramenta retorna um erro para essas versões do Java.
Joe Dyndale
1
Esta é a única resposta trabalhando para mim depois de baixar v1.7 JRE
maxrossello
2
Este é o caminho se você instalar o JRE. A maioria das respostas e comentários classificados são sobre o JDK. Não é a mesma coisa.
8None1
9
para macOS Mojave 10.14.1 e JAVA 11.0.1, defino o perfil como
export JAVA_HOME=$(/usr/libexec/java_home)
digite o terminal this para confirmar:
$JAVA_HOME/bin/java -version
java version "11.0.1"2018-10-16 LTS
Java(TM) SE RuntimeEnvironment18.9(build 11.0.1+13-LTS)JavaHotSpot(TM)64-BitServer VM 18.9(build 11.0.1+13-LTS, mixed mode)
Eu tive que defini-lo explicitamente para o caminho exato no meu ar Macbook.
Passos seguidos:
tente echo $JAVA_HOME(se estiver definido, ele mostrará o caminho); caso contrário, tente procurá-lo usandosudo find /usr/ -name *jdk
Edite o Bash p com - sudo nano ~/.bash_profile
Adicione o caminho exato ao JAVA Home (com o caminho da etapa 2 acima)
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
Salvar e sair
Verifique JAVA_Home usando - echo $JAVA_HOME
Estou executando o MACOS MOJAVE - 10.14.2 (18C54) em um Macbook Air com JAVA 8
No Mac OS X 10.9, instalei a versão mais recente do JRE a partir do Oracle e, em seguida, redefinii o JAVA_HOME para /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home.
Tenho certeza de que há uma maneira melhor, mas me colocou em funcionamento.
Em uma nova instalação do Mavericks, esta é a única solução que funcionou para mim. Teve que ponto sqldeveloper para a casa jdk localizados aqui (como sugerido por esta discussão para obtê-lo a trabalhar.
chris
2
OSX Yosemite, ZSH e Java SE Runtime Environment 8, tive que:
Se você precisar de várias versões do JDK no Mac OS X (Yosemite), pode ser útil adicionar alguns scripts para alternar automaticamente entre eles.
O que você faz é editar seu ~ / .bash_profile e adicionar o seguinte:
function setjdk(){if[ $#-ne 0]; then
removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin'if[-n "${JAVA_HOME+x}"]; then
removeFromPath $JAVA_HOME
fi
export JAVA_HOME=`/usr/libexec/java_home -v $@`
export PATH=$JAVA_HOME/bin:$PATH
fi
}
function removeFromPath(){
export PATH=$(echo $PATH | sed -E -e "s;:$1;;"-e "s;$1:?;;")}
setjdk 1.7
O que o script faz é primeiro remover outras versões do JDK no PATH para que elas não interfiram na nossa nova versão do JDK. Em seguida, faz um uso inteligente de / usr / libexec / java_home, que é um comando que lista as versões instaladas do JDK. O argumento -v diz ao java_home para retornar o caminho do JDK com a versão fornecida, por exemplo 1.7. Também atualizamos o PATH para apontar para o diretório bin do diretório JAVA_HOME recentemente encontrado . No final, podemos simplesmente executar a função usando
setjdk 1.7
que seleciona a versão mais recente do JDK instalada da ramificação 1.7. Para selecionar uma versão específica, você pode simplesmente executar
setjdk 1.7.0_51
em vez de. Execute / usr / libexec / java_home -V para obter mais detalhes sobre como escolher versões.
PS Não se esqueça de fonte ~ / .bash_profile depois de salvá-lo.
Esta resposta está relacionada ao leão da montanha e não ao leão. Eu precisava fazer isso nas ferramentas de linha de comando da AWS. De acordo com os documentos da AWS , a execução which javaretorna /usr/bin/java.
Então, eu JAVA_HOME=/usrcoloquei no meu .bashrc.
Aparentemente, /usr/bin/javaé um link simbólico ao /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javaqual faz tudo funcionar.
Atualizar
Conforme mencionado no comentário abaixo, esse JAVA_HOMEvalor não é uma solução ideal quando a JAVA_HOMEvariável de ambiente deve ser usada por outras coisas que não as Ferramentas de Linha de Comando da AWS. Porém, ele funciona bem para as Ferramentas de linha de comando da AWS, conforme indicado nos documentos.
o ponto é que / usr não é um diretório JAVA_HOME correto. Não há problema em localizar bin / java. Mas às vezes os construtores (ANT, make) uso JAVA_HOME para referenciar o javac compilador em lib / tools.jar A sua solução irá falhar para aqueles
Olivier Refalo
Ah, obrigado pela informação. Você está certo. Atualizará a resposta.
Anjan
0
Para Mac Yosemite,
O JDK 1.7.0_xx está usando
$ ls -ltar /usr/bin/java
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.7.0_xx.jdk/Contents/Home
Para usuários do terminal Fish no Mac (acredito que também esteja disponível no Linux), isso deve funcionar:
set -Ux JAVA_8 (/usr/libexec/java_home --version 1.8)
set -Ux JAVA_12 (/usr/libexec/java_home --version 12)
set -Ux JAVA_HOME $JAVA_8 //or whichever version you want as default
Respostas:
Com o pacote opcional Java ou o Oracle JDK instalado, adicionar uma das seguintes linhas ao seu arquivo ~ / .bash_profile configurará a variável de ambiente de acordo.
Atualização: sinalizador -v adicionado com base na resposta de Jilles van Gurp .
fonte
/usr/libexec/java_home
não é um diretório, mas um executável. Ele gera o JAVA_HOME atualmente configurado e, na verdade, não o altera. É para isso que serve o aplicativo Java Preferences, que, no meu caso, parece quebrado e não altera a JVM corretamente. Ele lista a JVM 1.7, mas eu posso alternar / desarmar, arrastar e soltar tudo o que quero lá, sem realmente alterar a saída de/usr/libexec/java_home
.Mesmo depois de instalar o 1.7.0 u6 do Oracle no Lion e defini-lo como padrão nas preferências, ele ainda retornou o apple 1.6 java para casa. A única correção que realmente funciona para mim é definir JAVA_HOME manualmente:
Pelo menos desta maneira, quando executado a partir da linha de comando, ele usará 1.7.
/usr/libexec/java_home
ainda insiste em 1.6.Atualização : Noções básicas sobre Java a partir da linha de comando no OSX, há uma explicação melhor sobre como isso funciona.
é a maneira de fazer isso. Observe que atualizá-lo para 1.8 funciona perfeitamente.
fonte
Para mim, o Mountain Lion 10.8.2, a solução mais votada não funciona. Eu instalei o jdk 1.7 via Oracle e o maven do homebrew.
Minha solução é do arquivo hadoop-env.sh do hadoop, que eu instalei também do homebrew. Eu adiciono a frase abaixo em ~ / .bash_profile, e funciona.
Esta solução também funciona para OS X Yosemite com Java 1.8 instalado da Oracle.
fonte
export JAVA_HOME="$(/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home)"
Nenhuma das respostas acima me ajudou. Suponho que todas as respostas são para idosos
OS X
Para o OS X Yosemite 10.10, siga estas etapas
Use seu editor de texto favorito para abrir:
~/.bash_profile
Adicione a seguinte linha no arquivo e salve-a (: seguida de "x" para vim):
Em seguida, no terminal, digite os dois comandos a seguir para ver a saída:
Na segunda linha, você está atualizando o conteúdo do
.bash_profile
arquivo.fonte
Atualização para Java 9 e alguns aliases puros.
Em
.bash_profile
:Observe que, para a versão mais recente, é
9
e não1.9
.Defina Java ativo:
Algum alias adicional para alternar entre as diferentes versões:
Teste no terminal:
EDIT: atualização para Java 10
EDIT: atualização para Java 11
fonte
O exemplo acima não funcionou para mim com as ferramentas EC2 da Amazon, porque espera
bin/java
etc. embaixoJAVA_HOME
./System/Library/Frameworks/JavaVM.framework/Home
funcionou.fonte
Para o OS X, você pode:
fonte
No Mac OS X Lion, para definir o visualgc para execução, usei:
fonte
/usr/libexec/java_home
? o comando / usr / libexec / java_home retorna /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/HomeO seguinte funcionou para mim. Estou usando o ZSH no OSX Yosemite com o Java 8 instalado.
O comando a seguir
/usr/libexec/java_home
emite o caminho para a página inicial do JDK:/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
No seu
~/.zshrc
,fonte
Uma maneira melhor (mais atualizável) é usar o seguinte:
Isso deve funcionar com a AWS também uma vez que tem
bin
debaixo Iníciofonte
JVMs Oracle mais recentes, como 1.7.0_21-b12, parecem instalar aqui:
/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
fonte
/usr/libexec/java_home
ferramenta retorna um erro para essas versões do Java.para macOS Mojave 10.14.1 e JAVA 11.0.1, defino o perfil como
digite o terminal this para confirmar:
fonte
Minha abordagem é:
.bashrc
Isso torna muito fácil alternar entre J6 e J7
fonte
Eu tive que defini-lo explicitamente para o caminho exato no meu ar Macbook.
Passos seguidos:
echo $JAVA_HOME
(se estiver definido, ele mostrará o caminho); caso contrário, tente procurá-lo usandosudo find /usr/ -name *jdk
sudo nano ~/.bash_profile
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
echo $JAVA_HOME
Estou executando o MACOS MOJAVE - 10.14.2 (18C54) em um Macbook Air com JAVA 8
fonte
No Mac OS X 10.9, instalei a versão mais recente do JRE a partir do Oracle e, em seguida, redefinii o JAVA_HOME para /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home.
Tenho certeza de que há uma maneira melhor, mas me colocou em funcionamento.
hughsmac: ~ hbrien $ echo $ JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
fonte
OSX Yosemite, ZSH e Java SE Runtime Environment 8, tive que:
$ sudo ln -s /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands /System/Library/Frameworks/JavaVM.framework/Versions/Current/bin
e em ~ / .zshrc, mude JAVA_HOME para
export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/Current"
fonte
Obtive o mesmo problema após a atualização do meu Mac OS e o seguinte funcionou para mim:
cmd> vi ~ / .bash_profile
Adicione / atualize a linha para JAVA_HOME: export JAVA_HOME = "/ Biblioteca / Java / JavaVirtualMachines / jdk1.7.0_15.jdk / Conteúdo / Home"
cmd> source ~ / .bash_profile ou abra um novo terminal
Eu acho que a versão do jdk pode ser diferente, então use a versão que você possui em / Library / Java / JavaVirtualMachines /
fonte
Se você precisar de várias versões do JDK no Mac OS X (Yosemite), pode ser útil adicionar alguns scripts para alternar automaticamente entre eles.
O que você faz é editar seu ~ / .bash_profile e adicionar o seguinte:
O que o script faz é primeiro remover outras versões do JDK no PATH para que elas não interfiram na nossa nova versão do JDK. Em seguida, faz um uso inteligente de / usr / libexec / java_home, que é um comando que lista as versões instaladas do JDK. O argumento -v diz ao java_home para retornar o caminho do JDK com a versão fornecida, por exemplo 1.7. Também atualizamos o PATH para apontar para o diretório bin do diretório JAVA_HOME recentemente encontrado . No final, podemos simplesmente executar a função usando
que seleciona a versão mais recente do JDK instalada da ramificação 1.7. Para selecionar uma versão específica, você pode simplesmente executar
em vez de. Execute / usr / libexec / java_home -V para obter mais detalhes sobre como escolher versões.
PS Não se esqueça de fonte ~ / .bash_profile depois de salvá-lo.
fonte
Para Java 11 (JDK 11), ele pode ser localizado com o seguinte comando:
fonte
Esta resposta está relacionada ao leão da montanha e não ao leão. Eu precisava fazer isso nas ferramentas de linha de comando da AWS. De acordo com os documentos da AWS , a execução
which java
retorna/usr/bin/java
.Então, eu
JAVA_HOME=/usr
coloquei no meu.bashrc
.Aparentemente,
/usr/bin/java
é um link simbólico ao/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
qual faz tudo funcionar.Atualizar
Conforme mencionado no comentário abaixo, esse
JAVA_HOME
valor não é uma solução ideal quando aJAVA_HOME
variável de ambiente deve ser usada por outras coisas que não as Ferramentas de Linha de Comando da AWS. Porém, ele funciona bem para as Ferramentas de linha de comando da AWS, conforme indicado nos documentos.fonte
Para Mac Yosemite,
O JDK 1.7.0_xx está usando
fonte
Qualquer pessoa que utilize o AUSKEY do Australian Tax Office (ATO) deve desinstalar o AUSKEY. Isso resolveu meus problemas com o JAVA_HOME.
Também não é mais necessário para usuários de MAC. Yah!
fonte
Estou usando o shell de peixe no High Sierra 10.13.4 e instalei o Java via Brew.
Não é configurado automaticamente, portanto, para configurá-lo corretamente no meu sistema, eu corro:
fonte
Basta definir java_home da versão 1.8 jdk no
netbeans.conf
arquivo:linha de comentário:
e defina o caminho para o seu 1,8 jdk, no meu caso:
Essa abordagem permite que você tenha várias versões do jdk no mac os
fonte
Para usuários do terminal Fish no Mac (acredito que também esteja disponível no Linux), isso deve funcionar:
fonte
para usuário de mac. java 8 deve adicionar
java 6:
ref: http://qiita.com/seri_k/items/e978c1339ce51f13e297
fonte