Instalando o Java no OS X 10.9 (Mavericks)

321

Instalei o JDK no Mac OS X versão 10.8 (Mountain Lion). Quando o atualizei para o Mac OS X 10.9 (Mavericks) e executei java -versionno terminal, ele mostrou:

Não há Java Runtime presente, solicitando instalação.

Então eu instalei manualmente o JDK (1.7) no meu Mac. Parece que a instalação funcionou bem. Quando a instalação foi concluída, abri o terminal e digitei java -versiontambém. Também mostrou o mesmo erro:

Não há Java Runtime presente, solicitando instalação.

Como posso resolver este problema?

user2909913
fonte
1
Eu não sei qual o problema está lá no terminal, mas eu corro eclipse e todos os projetos estão compilando bem em mavericks
Ensolarado
1
parece que o antigo java launcher suporta apenas o jdk 1.6, mas o mavericks não tem o 1.6 instalado por padrão.
Shawn
1
Você instalou o java 6, não o java 7, pois o OP originalmente implicava que eles precisavam. Estou interessado em saber como essa solução é alcançada. Também deve haver um tipo de abordagem 'alternativas' aqui que aborda diretamente o feedback do terminal.
Rondo
4
Isso é ótimo para o Java 6, mas como você pode fazer o Java 7 funcionar?
190290000 Ruble Man
2
Adicionada uma resposta em potencial para instalar o Java 7 JRE e fazê-lo funcionar no Terminal: stackoverflow.com/a/19582689/346286
analógico

Respostas:

279

O novo Mavericks (10.9) me mostrou a "Solicitação de instalação", mas nada aconteceu.

A solução foi baixar e instalar manualmente o pacote Java oficial para OS X, que está em Java para OS X 2013-005.

Atualização: Conforme mencionado nos comentários abaixo, há uma versão mais recente deste mesmo pacote:

Java para OS X 2014-001

Java para OS X 2014-001 ( corrigindo o prazo final acima)

O Java para OS X 2014-001 inclui melhorias na instalação e substitui todas as versões anteriores do Java para OS X. Este pacote instala a mesma versão do Java 6 incluída no Java para OS X 2013-005.

Cara
fonte
O mesmo para mim. Outra opção é instalar o Java a partir do Oracle. Qual vocês acham que é melhor? A Oracle parece ter o Java atualizado mais rapidamente que a Apple.
Ngoc Pham #
2
mas este fornece o JDK 6. como podemos usar o JDK 6 diretamente?
Shawn
2
@ Shawn Apple desativa o JDK 7. já instalado. Mas você pode obter algumas perguntas frequentes e instalar aqui: java.com/en/download/faq/java_mac.xml, mas eu não tentei.
Guy
Se você tiver instalado tanto java6 e Java7, você pode selecionar v6 em sua concha com: export JAVA_HOME = / System / Library / Java / JavaVirtualMachines / 1.6.0.jdk / Contents / Home
Jürgen Strobel
1
Por que você deseja usar o java de 32 bits em um sistema operacional de 64 bits? O java de 64 bits é realmente mais rápido que 32 bits no Mavericks.
MiB 23/01
196

Se você deseja instalar apenas o JRE oficial mais recente da Oracle, é possível acessá-lo, instalá-lo e exportar o novo JAVA_HOME no terminal.

Essa foi a maneira mais limpa que encontrei para instalar o JRE mais recente.

Você pode adicionar a export JAVA_HOMElinha no seu .bashrcpara ter javapermanentemente no seu Terminal:

echo export JAVA_HOME=\"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home\" >> ~/.bashrc
análogo
fonte
37
Eu acho que parece um pouco suspeito definir o JAVA_HOMEque é claramente um plug-in de navegador em vez da VM real. Ao instalar as ferramentas de linha de comando do XCode, você obtém uma ferramenta para obter o caminho correto /usr/libexec/java_home,. Consulte developer.apple.com/library/mac/documentation/Darwin/Reference/… .
Ilkka
8
@ Ilkka - parece suspeito, mas é aí que o JRE da Oracle se instala. O java da Apple (que para no java 6) não se mistura aos do oracle tão bem quanto se pode gostar
Orion Edwards
12
Um colega meu (que infelizmente não tem a reputação necessária aqui para adicionar comentários) quer acrescentar que a configuração JAVA_HOME deve ser #export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home"
Stephan Windmüller
1
Instalei o jdk7u45 do Oracle e ainda uso a exportação JAVA_HOME = $ (/ usr / libexec / java_home) no meu perfil do bash. O jdk7u45 funciona muito bem, incluindo o painel de preferências do sistema java. Agora estou atualizando para jdk7u51.
MiB 23/01
2
Eu tive que adicionar export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"ao ~ / .profile em vez de ~ / .bashrc ou ~ / .bash_profile para obter este trabalho.
LarS
64

O lugar certo para fazer o download do JDK para Java 7 é o Java SE Downloads .

Todos os outros links fornecidos acima, tanto quanto posso dizer, fornecem os downloads do JRE ou Java 6 (aliás, se você deseja executar o Eclipse ou outros IDEs, como o IntelliJ IDEA , precisará do JDK, não do JRE ).

Com relação ao IntelliJ IDEA - isso ainda solicitará a instalação do Java 6, pois ele aparentemente precisa de um carregador de classes mais antigo ou algo assim: basta seguir as instruções quando a caixa de diálogo aparecer e instalar o JDK 6 no lugar certo.

Posteriormente, você precisará fazer o sudo ln -snfmencionado na resposta acima:

sudo ln -nsf /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents \
    /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

(copiado aqui, pois foi mencionado que "acima" pode eventualmente não fazer sentido, pois as respostas são reorganizadas).

Também configurei meu JAVA_HOMEpara apontar para onde jdk_1.7.0_xx.jdkfoi instalado:

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home"

Em seguida, adicione isso ao seu PATH:

export PATH=$JAVA_HOME/bin:$PATH

A alternativa é mexer com o labirinto insano de hiperlinks da Apple, mas honestamente a vida é muito curta para incomodar.

Marco Massenzio
fonte
4
Veja meu comentário em outra resposta para saber qual é talvez a melhor maneira de seguir esse caminho.
Ilkka
1
Como esta resposta tem mais votos positivos, o trecho indicado sudo ln -snfna resposta acima não é mais preciso. Isso é realmente referindo-se a resposta por Mr. Ronald
Karthic Raghupathi
@KarthicRaghupathi Não sei se entendi completamente o comentário (o uso thise thaté um pouco confuso), mas você ainda precisa de um link simbólico do local / Sytem / Library / etc para o local real onde o Oracle instala a JVM (/ Library / etc .) ou aplicativos não conseguirão encontrar o Java runtime.
Marco Massenzio
@Marco Agora que você mencionou, quando li meu próprio comentário, isso realmente não faz muito sentido. :) Deixe-me esclarecer. Na sua resposta, você escreve "Posteriormente, você precisará fazer o sudo ln -snfmencionado na resposta acima;". As respostas são movidas para cima ou para baixo com base no número de votos que recebem. Minha intenção era fornecer apenas uma referência direta à resposta que tinha o sudo ln -snfcomando.
Karthic Raghupathi
Editado - mas não tenho certeza de que a reordenação realmente acontece: todos parecem estar onde estavam, independentemente de votos positivos. NVM
Marco Massenzio
14

Eu baixei e instalei o JDK 1.7 da Oracle . No console / no Terminal Java 7 funciona bem.

Quando inicio um programa Java (como o Eclipse ) por meio da GUI, recebo:

Para abrir "Eclipse.app", você precisa de um tempo de execução Java SE 6. Deseja instalar um agora?

Como não queria instalar a versão antiga do Java, usei a seguinte solução alternativa:

sudo ln -nsf /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

Créditos ao monkehWorks .

Mr. Ronald
fonte
1
Eu preciso usar ln -snfporque eu tenho Operation not permittedcomln -sf
Lars Blumberg
Thx, editei a resposta e adicionei a opção -n ao comando ln.
Ronald Ronald
+1 Exatamente o que eu estava procurando. Obrigado! A CLI estava obtendo a referência ao JDK 7 após a instalação. No entanto, para que os aplicativos da GUI capturem o JDK correto, essa etapa foi necessária.
Karthic Raghupathi
Era esperançoso, mas não funcionou para mim. O Android Studio 0.3.2 insiste em "baixar Java 6", o que não vou fazer. O Oracle Java 7 JDK está instalado.
akauppi
Você precisa de uma versão de 64 bits do Eclipse. O 32-bit requer Apple java.
Thorbjørn Ravn Andersen
4

Este erro ocorre porque o arquivo plist do IntelliJ IDEA requer o Java versão 1.6 *. Para resolver esse problema, substitua o 1.6 * por 1.8 *.

<key>JVMOptions</key>
<dict>
    <key>ClassPath</key>
      ...

    <key>JVMVersion</key>
    <string>1.8*</string>

    <key>MainClass</key>
    <string>com.intellij.idea.Main</string>
    <key>Properties</key>
<dict>
Fabio Fumarola
fonte
Isso fez por mim. Meu problema foi quando atualizei para o osx 10.9, eu ainda conseguia acessar o java a partir do terminal e tudo mais (incluindo o eclipse funcionou bem). Somente o Android Studio estava causando esse erro.
Ucsunil
Isso não funcionou para mim no OS X 10.10.1, queixa-se de que nenhuma versão 1.8 está disponível (mesmo se o JRE 8 estiver instalado corretamente).
Emmanuel Bourg
Você verificou se JAVA_HOME está definido?
Fabio Fumarola
3

O OP implicava que o Java 7 era necessário. Na verdade, o Java 6 não está mais sendo 'suportado', portanto 7 é a versão que você deve instalar neste momento, a menos que tenha preocupações com o aplicativo herdado.

Você pode obtê-lo aqui: http://java.com/en/download/mac_download.jsp?locale=en

Rondó
fonte
Não devemos supor que a distribuição atual da Apple do Java 6 não seja suportada.
Graham Perrin #
Coloquei a palavra 'suportado' entre aspas para evitar tentar resolver um problema complicado. A Oracle cobra por qualquer suporte de 6 ... e essa taxa de suporte também se aplicaria logicamente à Apple; portanto, a Apple está "sozinha" sem contrato. Eles têm um e planejam trabalhar com os patches do MacOSX? O contrato ainda permite a redistribuição? Agora, existem 2 atualizações do Java 7 da Oracle desde a última atualização da Apple para 6. Historicamente, elas tendem a liberar etapas. Suposição, talvez; Uma suposição segura? Parece que sim.
Rondo
3

Minha experiência na atualização do Java SDK no OS X 10.9 foi muito mais fácil.

Eu baixei o mais recente Java SE Development Kit 8, do SE, baixei e instalei o arquivo .dmg. E ao digitar o java -versionterminal, o seguinte foi exibido:

versão java "1.8.0_11"

Java (TM) SE Runtime Environment (compilação 1.8.0_11-b12)

VM do servidor Java HotSpot (TM) de 64 bits (compilação 25.11-b03, modo misto)

Muhammad Reda
fonte
1

Do OP:

Eu finalmente o reinstalei do Java para OS X 2013-005. Resolveu esse problema.

Eric Leschinski
fonte
1

Este erro significa que o Java não está instalado corretamente.

1) brew cask install java (No need to install cask separately it comes with brew)

2) java -version

java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)

PS - O que é barril de cerveja? O Homebrew-Cask estende o Homebrew e resolve o incômodo de executar um comando extra - “Para instalar, arraste este ícone…” depois de instalar um Aplicativo usando o Homebrew .

NB - Esse problema não é específico do Mavericks, você receberá quase todo o OS X, incluindo o EL Capitan.

sapy
fonte
0

Não há necessidade de instalar o JDK, que é o kit do desenvolvedor , apenas o JRE, que é o ambiente de tempo de execução .

dmz
fonte
6
Isso é verdade. No entanto, o que a Apple fornece é o JDK e o JRE da Oracle existe apenas para o plug-in da Internet; o javacomando não é vinculado automaticamente ao sistema inteiro, para que você ainda veja o "Não há tempo de execução Java presente, solicitando instalação". quando você digita java -versionno terminal.
Ngoc Pham #