Onde o Java está instalado no Mac OS X?

727

Acabei de baixar o Java 7u17 no Mac OS 10.7.5 daqui e depois instalei-o com sucesso. Para fazer alguma programação JNI, preciso saber onde o Java foi instalado no meu Mac.

Eu pensei que dentro da /Library/Java/JavaVirtualMachines/pasta, haveria uma pasta chamada 1.7.0.jdkou algo assim, mas depois descobri que a pasta está vazia. Isso foi confirmado executando ls /Library/Java/JavaVirtualMachines/no Terminal. Tentei procurá-lo para descobrir se ele estava instalado em outro lugar, mas isso não parece estar gerando nada.

Alguém poderia me dizer onde o Java está instalado no meu Mac?

Forja do Trovão
fonte
12
Para fechar os eleitores / reabridores - esta questão não é explicitamente fora de tópico (perguntas sobre ferramentas comumente usadas pelos programadores) . Infelizmente, isso foi afetado pela meta .
Rob

Respostas:

1384

Use o /usr/libexec/java_home -v 1.8comando em um terminal shell para descobrir onde está o diretório inicial do Java 1.8

Se você apenas deseja descobrir o diretório inicial da sua versão mais recente do Java, omita a versão. por exemplo/usr/libexec/java_home

gerrytan
fonte
Cheguei a esta pergunta porque estava recebendo um erro no eclipse no meu mac porque estava recebendo um erro na primeira linha do programa "import java.util. *." Eu suspeito fortemente que isso ocorre porque o caminho do java não está definido corretamente ou algo assim (mesmo que eu tenha configurado isso uma vez antes). Digitei o comando nesta resposta e recebo um diretório. Posso apenas colar esse diretório na caixa de texto na janela "Configuração da pasta da biblioteca nativa"? Ou esse diretório pertence a outro lugar?
OKGimmeMoney
47
Adicionado export JAVA_HOME=`/usr/libexec/java_home`a Bash_profile tão JAVA_HOME é sempre definida (note o back-carrapatos em torno do comando libexec)
Steve Henty
Se você só quer saber se o JDK está instalado no seu Mac, omitir o número da versão e executado a partir de terminal: $ echo $ (/ usr / libexec / java_home)
Donato
3
No Mac 10.12.3, devemos /usr/libexec/java_home -- vmostrar a versão mais recente do java
klion26
117

Você pode usar o echo $(/usr/libexec/java_home)comando no seu terminal para saber o caminho em que o Java está sendo instalado.

Pavithra Gunasekara
fonte
7
Gosto mais desta solução do que a resposta aceita porque é independente da versão da JVM instalada.
Alexandre Santos
1
Isso não encontrou minha versão do java 8 instalada pelo Oracle.
Antoine Lizée
13
Por que você tem o echo $(...)lá? Não faz apenas /usr/libexec/java_homeo mesmo?
Pa Elo Ebermann 10/16
1
A resposta aceita não funcionou para mim, mas funcionou! (Eu normalmente não sou um usuário Mac / Unix)
Roel
@ PaŭloEbermann Não funciona para mim sem sinal e suportes dolar.
Nikola Stojaković 23/03
80

Acontece que eu realmente tinha o Java 7 JRE instalado, não o JDK. O link de download correto está aqui . Após a instalação, jdk1.7.0jdkaparece no diretório JavaVirtualMachines.

Forja do Trovão
fonte
49
Para mim, foi sob /Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk(sabendo que para o JDK 1.6 o caminho é: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/)
Zakaria
Muito obrigado! Eu não percebi que eu tinha JRE instalado por acidente quer xD
Oliver Ni
1
exportar JAVA_HOME = $ (/ usr / libexec / java_home) em ~ / .bash_profile
Oleksii Kyslytsyn
34

Se você instalar apenas o JRE, ele será colocado em:

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
Morrie
fonte
2
Você não deve confiar nisso. Se você precisar do JRE, agrupe dentro de seu próprio aplicativo.
Swingler
Definir JAVA_HOME com um caminho contendo um caractere de espaço é um desafio! Eu não conseguiram ...
Antoine Rosset
você pode criar em algum lugar um link para este diretório e definir JAVA_HOME para esse link
Kuba
É aqui que o painel Preferências do sistema "Java" parece instalá-lo.
David Avendasora
2
@AntoineRosset, você pode configurá-lo desta maneira:export JAVA_HOME=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
coda
24

Use a função de localização unix para encontrar javas instaladas ...

sudo find / -name java
serkan
fonte
19
Você não precisa do sudo para executar a busca por comandos geralmente acessíveis. Se você não deseja ver as mensagens de erro sobre diretórios inacessíveis, livre-se das mensagens em vez de usar privs raiz desnecessariamente. Usar o sudo o tempo todo é um mau hábito. Redirecione o stderr para / dev / null, assim: encontre / -name java 2> / dev / null
Walter Underwood
1
O que devo fazer se precisar procurar também em diretórios inacessíveis?
serkan 29/09
2
O argumento de Walter é que o javabinário será legível em todo o mundo, portanto, não sudoé necessário. A sua resposta ainda é :) útil
Jared Beck
Sim, eu apenas usei isso para encontrar o src.zip (o código-fonte do java jdk)
Dinis Cruz
exportar JAVA_HOME = $ (/ usr / libexec / java_home) em ~ / .bash_profile
Oleksii Kyslytsyn
22

Experimente, é uma maneira fácil de encontrar o caminho instalado em java no Mac OS X,

Vamos para

1) / Biblioteca, ou seja, Macintosh HD / Biblioteca

insira a descrição da imagem aqui

2) Clique na Biblioteca, onde encontramos a pasta Java.

insira a descrição da imagem aqui

3) Então o caminho final é

/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home

Espero que isso ajude alguém.

Jaywant Khedkar
fonte
1
Bastante útil quando você precisa apontar o JDK explicitamente a partir de um IDE. Graças
Shwetabh Shekhar
Quão densa eu sou? Meu terminal diz que eu tenho 2 jdk está instalado em / Library / Java / JavaVirtualMachines / mas eu não posso encontrá-los quando eu navegue para esse diretório no Finder ... Como densa posso obter ...
SoftwareSavant
@SoftwareSavant, por favor, ref stackoverflow.com/a/14875241 resposta, É pode ser ajudá-lo.
Jaywant Khedkar
19

A estrutura de pacotes Java do Mac OS é um pouco diferente do Windows. Não fique chateado com isso, pois o desenvolvedor só precisa definir PATHe JAVA_HOME.

Então, no .bash_profileconjunto JAVA_HOMEe PATHcomo abaixo. Este exemplo é para Java 6:

export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
export PATH=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin:$PATH
Bimales Mandal
fonte
12
Isso remove sobre todo o resto do caminho? Faça isso apenas se você estiver usando apenas Java e mais nada no seu sistema.
Paŭlo Ebermann 10/16
exporte JAVA_HOME = $ (/ usr / libexec / java_home) em ~ / .bash_profile.
27619 Oleksii Kyslytsyn
17

Se você digitar

java -verbose 

Isso também fornece o local a partir do qual os frascos são carregados e, portanto, também o caminho do java.

jones j alapat
fonte
Adicionei exportação JAVA_HOME = $ (/ usr / libexec / java_home) em ~ / .bash_profile.
Oleksii Kyslytsyn
8

Editado: o alias para a versão java atual é /Library/Java/Home

Para mais informações: um link

manny
fonte
Esse seria um alias para a versão mais recente, que apontaria corretamente para o Java 7 SDK, uma vez instalado.
Thunderforge
1
Este link existe apenas para fins legados e não será atualizado com a instalação do Java 7. Não use este caminho.
Swingler
Atualizei a exportação JAVA_HOME = $ (/ usr / libexec / java_home) em ~ / .bash_profile.
Oleksii Kyslytsyn
8

basta escrever /Library/Java/JavaVirtualMachines/
em Vá para Pasta -> Ir no Finder

Mina Fawzy
fonte
ok, tentei isso e consegui navegar para o diretório Por que não consigo navegar para essa pasta normalmente no Finder? Isto é apenas a Apple ser extremamente irritante ... Também adicional irritante, Gradle versão 4.3 não funciona com qualquer versão do Java exceto para Java 8
SoftwareSavant
exportar JAVA_HOME = $ (/ usr / libexec / java_home) em ~ / .bash_profile
Oleksii Kyslytsyn
6

Acabei de instalar o JDK para a versão 21 do Java SE 7 e descobri que ele está instalado em um diretório diferente do Java 6. da Apple. Ele está em / Library / Java ... e não em / System / Library / Java ... A execução de / usr / libexec / java_home -v 1.7 versus -v 1.6 confirmará isso.

Tony Kroch
fonte
exportar JAVA_HOME = $ (/ usr / libexec / java_home) em ~ / .bash_profile
Oleksii Kyslytsyn
6

Eu tentei a solução da serkan, ele encontrou a localização do java 7 no OS X Mavericks. ele reside, "/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/" mas para torná-lo o JDK padrão, eu tive que definir a variável de sistema JAVA_HOME em .bash_profile no diretório inicial para "/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/" que ele esteja funcionando agora graças à ideia de serkan

Mehdi
fonte
exporte JAVA_HOME = $ (/ usr / libexec / java_home) em ~ / .bash_profile.
27619 Oleksii Kyslytsyn
5

Para :

  • OS X: 10.11.6

  • Java: 8

Confirmo a resposta de @Morrie.

   export JAVA_HOME=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home;

Mas se você estiver usando contêineres, sua vida será mais fácil

Abdennour TOUMI
fonte
2
Eu acho que isso deveria ter sido um comentário.
Thunderforge
1
Eu não acho, porque há um valor adicionado que é `export JAVA_HOME =`. ... E você @Thunderforge
Abdennour TOUMI
exporte JAVA_HOME = $ (/ usr / libexec / java_home) em ~ / .bash_profile.
21919 Oleksii Kyslytsyn
3

digite o which javaterminal para mostrar onde está instalado.

Pranay Aryal
fonte
1
Sim, exporte JAVA_HOME = $ (/ usr / libexec / java_home) em ~ / .bash_profile.
27619 Oleksii Kyslytsyn
-1

As Preferências do Sistema, o painel de controle Java e, em seguida, Java e Exibir mostrarão o local exato do JRE padrão atualmente instalado.

PaulNUK
fonte
exportar JAVA_HOME = $ (/ usr / libexec / java_home) em ~ / .bash_profile
Oleksii Kyslytsyn