Como instalar um JDK específico no Mac OS X?


197

Quero instalar um JDK específico (o mais recente, por exemplo). Para isso, fui à página inicial de download do JDK: http://java.sun.com/javase/downloads/index.jsp . Procurei uma versão para Mac, mas estou um pouco surpreso ao ver apenas versões para download para Linux, Windows e Solaris ...

Aqui está a mensagem para o Mac:

"A Apple Computer fornece sua própria versão do Java. Use o recurso Atualização de software (disponível no menu Apple) para verificar se você possui a versão mais atualizada do Java para o seu Mac."

OK, mas ... quando atualizo o Java com Mac, tenho um JRE e não um JDK ...

Eu não entendo por que não existe uma versão JDK que pode ser facilmente baixada / instalável (como um jar para descompactar?) Para Mac ...


70
Pergunta famosa ... você deve aceitar uma resposta. ;)
gary

O Fink fornece uma solução para isso.
Daniel

10
Note-se que Java 7 está agora fornecido pela Oracle - a maioria das respostas eo questio referem-se a um estado anterior
mmmmmm

Respostas:


44

Em um comentário na resposta de @ Thilo, o @mobibob perguntou como definir JAVA_HOME no seu .bash_profile em um Mac. Responda:

export JAVA_HOME=`/usr/libexec/java_home` 

Isso atribuirá dinamicamente a JAVA_HOME a localização do primeiro JDK listado na guia "Geral" do utilitário "Java Preferences".

Consulte o Perguntas e respostas técnicas 1170 da Apple: https://developer.apple.com/library/content/qa/qa1170/_index.html

EDITAR:

Se você preferir parênteses a backticks para substituição de comando, isso também funciona:

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

20

Como a mensagem diz, você deve ir à Apple, não à Sun, para Java no Mac. Até onde eu sei, o Apple JDK 6 é instalado por padrão no Mac OS X 10.6 (Snow Leopard). Talvez você precise instalar as ferramentas de desenvolvedor do seu DVD de instalação do Mac OS X (as ferramentas de desenvolvimento são uma instalação opcional do DVD do OS).

Consulte: http://developer.apple.com/java/

NOTA Esta resposta de 16 de outubro de 2009 está desatualizada; você pode obter o JDK para Mac OS X na página de download regular do JDK no site da Oracle agora.



10

Eu comprei um MacBook Pro ontem ( Mac OS X v10.8 (Mountain Lion)) e não há JDK instalado por padrão ...

Além do javac, também achei que ele não tinha pacotes como o SVN instalado. Acontece que você pode obter tudo na página de desenvolvedor da Apple (você precisará se registrar com seu AppleID). O SVN faz parte do pacote "Command Line Tools".

Digite a descrição da imagem aqui

É o que acontece em um MacBook novo:

Digite a descrição da imagem aqui

Digite a descrição da imagem aqui

Espero que isso ajude outros novatos como eu;)


5
+1. A situação mudou um pouco com o Mountain Lion. Observe também que, embora a Apple ofereça a instalação opcional do Java, ela é apenas do Java 6. mais antigo. As versões atuais do Java para OS X agora são distribuídas pelo próprio Oracle.
Thilo 18/01


4

A explicação é que o JDK é um pouco específico e não contém a biblioteca tools.jar . Para o meu desenvolvimento, preciso desta biblioteca e o JDK do Mac não a fornece:

(Cf. http://developer.apple.com/mac/library/documentation/Java/Conceptual/Java14Development/02-JavaDevTools/JavaDevTools.html )

tools.jar não existe. As classes normalmente localizadas aqui são incluídas em classes.jar. Os scripts que dependem da existência do tools.jar precisam ser reescritos de acordo.

É uma merda!


1
Ahhhhhhh !!! Como você descobriu, tools.jarjá está incluído no tempo de execução para Mac OS X. Assim, procurando tools.jarnão é a abordagem correta no Mac para saber se é um JDK ou JRE :)
Pascal Thivent

Obrigado pela sua resposta, você está certo. Minha necessidade era fazer com que o lib tools.jar para um projeto específico e para mim foi uma abordagem para reconhecer um jdk;)
ajeanson

4

A maneira mais fácil é usar o Homebrew . Instale o Homebrew e, em seguida:

brew tap caskroom/versions
brew cask install java7

Você pode listar todas as versões disponíveis usando o seguinte comando: brew cask search java


3

Compilar com -source 1.5 -target 1.5 (em um ambiente JDK 6) honrará apenas os elementos de idioma que estavam no 1.5 e anteriores. Ótimo. Mas não houve alterações de idioma em seis de qualquer maneira. O problema com essa abordagem (no Mac com 1.6) é que o uso de classes que vieram depois do 1.5 ainda será compilado porque elas existem no rt.jar. Portanto, pode-se executar em um ambiente 1.5 e obter uma exceção de classe não encontrada sem aviso prévio ao compilar. Descobri isso da maneira mais difícil com javax.swing.event.RowSorterEvent / Listener. Ambos entraram em "Desde 1.6", mas não foram pegos com -source 1.5



3

No Mac OS X v10.6 (Snow Leopard), você pode executar o Java 6 no modo de 32 bits em Macs equipados com processador Intel de 32 ou 64 bits .

Se você não pode atualizar para o Snow Leopard, o Soy Latte é uma versão pré-compilada do Java 6 para Intel de 32 bits.



1

Eu acho que essa outra questão do Stack Overflow poderia ajudar:

Como obter o JDK 1.5 no Mac OS X

Basicamente, diz que, se você precisar compilar ou executar um aplicativo Java com uma versão mais antiga do JDK (por exemplo 1.4 ou 1.5), poderá fazê-lo usando o 1.6, pois é compatível com versões anteriores. Para fazer isso, você precisará adicionar o parâmetro -source 1.5e / ou -target 1.5nas opções javac ou no seu IDE.


1

JDK é o Java Development Kit (usado para desenvolver software Java).

JRE é o Java Runtime Environment (usado para executar qualquer arquivo .jar 'Java software').

O JDK contém um JRE dentro dele.

No Windows, quando você atualiza o Java, ele atualiza o JRE automaticamente.

No Mac, você não possui um JRE separado, mas dentro do JDK, portanto, quando você atualiza o Java, ele atualiza o seu JRE, que está dentro do seu JDK; ele não instala um JDK para você. Você precisa obtê-lo de outro lugar.


1
Eu acho que você quis dizer JDK em vez de IDK. Tentei editar, mas o Stack Overflow disse que as edições precisam ter mais de 6 caracteres. Apenas mencionando isso para evitar confusão.
Webworm

1

Verifique esta incrível ferramenta sdkman para gerenciar seu jdk e outras ferramentas relacionadas ao jdk com muita facilidade!

por exemplo

$sdk list java
$sdk install java <VERSION>

1

Como a maioria das respostas está desatualizada, eis o que funciona no final de 2018 sob a suposição de que

  1. Você deseja instalar a versão GPL do OpenJDK. [0]
  2. Você não deseja instalar o Homebrew

Nesse caso, pegue a versão desejada em uma das muitas edições OpenJDK disponíveis e livremente utilizáveis, por exemplo:

Alguns deles incluem instaladores, mas se não, você pode fazer o seguinte. Supondo aqui a versão 11.0.1 para Mac. No seu shell favorito, execute:

tar -xzf openjdk-11.0.1_osx-x64_bin.tar.gz
sudo mv jdk-11.0.1.jdk /Library/Java/JavaVirtualMachines
# Fix owner and group
sudo chown -R root:wheel /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk
# (Optional) Check if the new JDK can be found
/usr/libexec/java_home
=> /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home

[0] Observe que o JDK da marca Oracle possui restrições significativas de licenciamento, permitindo seu uso basicamente apenas para testes, ou seja, não para produção. Se você não possui um contrato de suporte com a Oracle, parece-me arriscado usar o JDK deles, principalmente porque o diferenças no OpenJDK são mínimas .

Editar: adicionadas mais opções


1
Sugiro que você aponte o download do AdoptOpenJDK.net e siga suas instruções, evitando os problemas legais e de suporte dos lançamentos da Oracle.
Basil Bourque

0

Como regra, você não pode instalar outras versões do Java em um Mac além daquelas fornecidas pela Apple por meio da Atualização de Software. Se você precisar do Java 6, deverá ter um computador Intel de 64 bits. Você deve sempre ter o Java 5 e 1.4 e talvez 1.3 instalado se tiver pelo menos OS X 10.4.

Se você tem MUITO graxa de cotovelo e está disposto a trabalhar com software beta, pode instalar o OpenJDK no OS X, mas acho que você não quer ir para lá.


Eu sei, foi por isso que adicionei esse comentário. Talvez deveria ter escrito um pouco mais comentário para ir com o link :-)
Neeme Praks
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.