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?


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


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.


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.


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

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

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.


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

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.


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


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


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.


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


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


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


-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.


exportar JAVA_HOME = $ (/ usr / libexec / java_home) em ~ / .bash_profile
Oleksii Kyslytsyn
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.