Como faço para usar o JDK 7 no Mac OSX?

107

Eu gostaria de usar a API WatchService conforme mencionado neste link: http://download.oracle.com/javase/tutorial/essential/io/notification.html

Depois de ler ao redor, descobri que WatchService faz parte da classe NIO que está agendada para JDK 7. Portanto, está em forma beta. Está bem.

http://jdk7.java.net/download.html tem o JDK que baixei e extraí. Eu tenho um monte de pastas. Não sei o que fazer com eles.

Então, li mais um pouco e descobri que um bom grupo de pessoas criou o JDK 7 como um binário para que alguém como eu possa instalá-lo facilmente. É denominado Open JDK: http://code.google.com/p/openjdk-osx-build/

Então, eu baixei o arquivo .dmg e instalei. Então abro "Java Preference" e vejo que o OpenJDK7 está disponível.

Então, agora eu sinto que posso começar a experimentar a API WatchService. A partir do tutorial do primeiro link, o autor forneceu um arquivo .java para testá-lo primeiro e certificar-se de que ele está em execução. Aqui está o link para o arquivo: http://download.oracle.com/javase/tutorial/essential/io/examples/WatchDir.java

Então, eu inicializo o Eclipse (na verdade, eu uso STS) e crio um novo projeto Java e escolho JaveSE-1.7 em "usar um ambiente de execução JRE:". Na pasta src, copiei e colei o arquivo WatchDir.java.

E ainda vejo toneladas de linhas vermelhas irregulares. Todos os "import.java.nio. *" Estão todos vermelhos e não consigo executá-lo como um aplicativo Java.

O que eu preciso fazer?

okysabeni
fonte
Você pode executá-lo e compilá-lo no console?
dmeister
Você quer dizer: $ javac WatchDir.java e $ Java WatchDir? Vou tentar isso. Obrigado! Embora eu adorasse tê-lo disponível no IDE Eclipse.
okysabeni
1
A partir de hoje há um lançamento oficial da Oracle - Java SE 7u4
mmmmmm
Certifique-se de usar o Eclipse de 64 bits. Não tive sorte executando 32 bits um em 1.7 jvm com qualquer opção.
tuxSlayer
Atualização: Java 7 está no fim de sua vida útil . Para passar para as versões de suporte de longo prazo (LTS) do Java, consulte: Como instalar o Java 8 no Mac e obter o Java 11 para macOS? .
Basil Bourque

Respostas:

61

A Oracle lançou JDK 7 para OS X .

Mukund
fonte
Vou atualizar a resposta com as informações mais recentes. Por favor, deixe-me saber se esta não for a resposta certa. Obrigado.
okysabeni
@Yko - veja o BasilBourque para obter as informações mais completas (ou o meu para o primeiro Oracle JDK7 versão 4)
mmmmmm
12
Observe que, para fazer os aplicativos usarem o Java 1.7 da Oracle em favor do Java 1.6 da Apple, tive que executar /Library/Java/JavaVirtualMachines/1.7.0.jdke arrastar "Java SE 7" para o topo da lista na guia "Geral". Isso também javacapontará para a versão Java 1.7 ao executar o terminal.
sschuberth 01 de
2
O JDK7 da Oracle não está funcionando no Snow Leopard. Diz que é apoiado apenas pelo Lion.
Sanghyun Lee de
@Sangdol - Sim, a implementação Java da Oracle é executada apenas no Lion e posterior. Conforme observado em minha resposta a esta pergunta.
Basil Bourque
88

Foi assim que consegui 1.7 para trabalhar com o Eclipse. Espero que ajude.

  1. Fiz o download do JDK universal mais recente do OpenJDK 1.7 (32/64 bits) do branch Mac OS / X em http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
  2. copiou o jdk para / Library / Java / JavaVirtualMachines / próximo ao padrão 1.6.0
  3. Em Eclipse> Preferências> Java> JREs instalados, você adiciona um novo, do tipo MacOS X VM, e define a página inicial como /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home e nomeia Java SE 7 (OpenJDK)
  4. Clique Terminar
  5. Defina o JRE adicionado como padrão

deve ser isso :)

vetorizar
fonte
obrigado minha elcipse travou completamente .. então tentei usar o sdk 1.7 funcionou perfeitamente! : =)
cV2
1
Esse projeto (openjdk-osx-build) foi encerrado e não oferece mais nenhum download.
aroth
a etapa 2 pode ser apenas: execute o downladed jdk-7u40-macosx-x64.dmg e adicionará o arquivo automaticamente ao caminho
Michal
Ao adicionar um JRE instalado ao Eclipse, o Eclipse também pode "procurar" por JREs instalados. Foi assim que encontrei minha instalação existente do 1.7 JDK.
jvriesem
Observe que o instalador do oracle jdk 1.7 colocará a VM em / Library / Java / JavaVirtualMachines / para você (março de 2014)
Chris Thorne
55

Java 9, 10, 11

Anos atrás, a Apple se juntou ao projeto OpenJDK , transferindo seu código JVM específico do macOS, anteriormente proprietário, como código aberto gratuito. A Apple encerrou a distribuição de sua própria marca JVM / JDK, contando com os lançamentos da marca Oracle para incluir uma versão para macOS.

A Oracle anunciou recentemente sua intenção de trazer seu lançamento JVM da marca Oracle para paridade de recursos com o projeto OpenJDK, com praticamente a mesma base de código. A empresa até doou suas ferramentas anteriormente comerciais, Flight Recorder & Mission Control , para o projeto OpenJDK. Isso faz parte da mudança para um novo plano de “trem de lançamento” rápido para versões programadas de Java e OpenJDK. Notavelmente, os períodos para atualizações públicas gratuitas foram reduzidos. Veja este anúncio de 2017-09 e esta postagem de Mark Reinhold .

Como resultado de tudo isso, os usuários do macOS de Java têm uma escolha de fornecedores para uma implementação de Java. Neste ponto, pelo menos três fontes são baseadas no OpenJDK para macOS:

Enquanto isso, a IBM doou código para uma JVM para a Eclipse Foundation, agora alojada no projeto OpenJ9 . Eu me pergunto se eles podem suportar uma versão macOS também, embora seja muito cedo para dizer.

Pessoalmente, estou usando atualmente a versão Zulu do Java 10.0.1 da Azul no macOS High Sierra com sucesso com o IntelliJ 2018.2 para produzir aplicativos da web baseados em Java com Vaadin .

Instalação / Remoção

Oracle e Azul fornecem instaladores totalmente fáceis de usar para instalar o JVM / JDK em seu Mac. Verifique sua instalação usando Terminal.app (ou equivalente) para digitar e executar:

java -version

Você encontrará as instalações do Java nesta pasta no nível da raiz de sua unidade (não em sua pasta inicial):

/ Library / Java / JavaVirtualMachines

Cada versão de cada fornecedor é encontrada lá, em uma pasta aninhada rotulada. Você pode excluir qualquer instalação simplesmente excluindo a pasta aninhada para essa versão e fornecendo sua senha do sistema quando solicitado.

Java 8

Você pode baixar o Java Development Kit (JDK) para Java 8 para as versões compatíveis do Mac OS X:

  • Leão da montanha (10.8.3+)
  • Mavericks (10.9)
  • Yosemite (10.10)
  • El Capitan (10.11)

Cada versão do JVM que você instala pode ser encontrada aqui:

/Library/Java/JavaVirtualMachines

Para obter mais instruções e perguntas frequentes, consulte este Guia Oracle .

Java 7

Para cada versão do Java 7 desde a Atualização 4, uma versão para Mac está pronta junto com as outras plataformas. Funciona em Macs com hardware de 64 bits no Lion (10.7.3+), Mountain Lion (10.8.3+) e Mavericks (10.9.x).

A Oracle anunciou o lançamento oficial do JDK para Java SE 7 Update 4 no Mac OS X (Lion), a partir de 2012-04-26. Não há mais necessidade dos truques discutidos nesta página.

A instalação é simples de acordo com estas instruções :

  1. Baixe do local de costume no site da Oracle.
  2. Monte o DMG.
  3. Execute o instalador.

Esta versão tem algumas limitações, principalmente a falta de suporte para Java Web Start e o Java Plugin para navegadores da web. Esse apoio é esperado ainda este ano.

Após a instalação, leia o JDK para Mac ReadMe. Mais importante ainda, se você deseja que o Java 7 seja o padrão, arraste-o para o topo da lista no aplicativo Preferências do Java, localizado na pasta Utilitários.

O Mac OS X suporta facilmente vários JVMs simultaneamente. Cada um agora pode ser encontrado aqui:

/Library/Java/JavaVirtualMachines

Parabéns às equipes Apple e Oracle por sua conquista. Este geek fica emocionado ao ver o Mac OS X listado como uma " Configuração de sistema certificada ".

Dica: Para iniciar o Eclipse em um Mac com apenas Java 7 instalado, abra o arquivo de alias denominado eclipse em vez do arquivo denominado Eclipse.app .

Java 6

A Apple continua a fornecer uma implementação atualizada do Java 6 para todas as versões do Mac OS X até o Mountain Lion.

Se você fizer algo que requer Java, como digitar "java -version" em Terminal.app, aparecerá uma caixa de diálogo oferecendo a instalação do Java para você. Se você aceitar, a instalação ocorre automaticamente de forma semelhante a outras "Atualizações de software" da Apple.

Você encontrará o Java instalado neste local, diferente do Java 7 e 8:

/System/Library/Java/JavaVirtualMachines

Java 6 chegou ao fim da vida útil da Oracle em 2013-02 (a menos que você tenha um contrato de suporte comercial com a Oracle). Portanto, você deve migrar para o Java 7 ou 8.

Testando Nova Versão

Em Terminal.app, digite java -versionpara verificar qual versão é o padrão atual.

Exclusão de versões antigas

Depois de instalar uma nova versão, você pode querer visitar a pasta descrita acima para deletar versões antigas. Mova a pasta para o Lixo e forneça sua senha do sistema para concluir a movimentação.


A propósito, a Apple fornece uma lista de discussão para problemas técnicos dos desenvolvedores relacionados ao Java no OS X.

Basil Bourque
fonte
Obrigado, isso funcionou muito bem para mim. Precisa mudar isso nas preferências também.
@ Tony: Sim, a alteração de suas preferências é mencionada no 4º parágrafo.
Basil Bourque
Não funciona. Eu executo o instalador e ele reporta "Sucesso", mas nada parece realmente ser instalado. /System/Library/Java/JavaVirtualMachinescontém apenas Java 6 JDK.
aroth
4
@aroth - (a) Olhe em /Library/Java/JavaVirtualMachines(não /System). (b) Você leu os documentos de instalação do Oracle, o ReadMee definiu Preferencesconforme descrito em minha resposta acima?
Basil Bourque
1
Com o Java 7 r21, vejo /Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/. O Painel de Controle Java agora é acessado através de Preferências do Sistema (OSX 10.8.3)
Sofi Software LLC
17

Uma maneira fácil de instalar o Java 7 em um Mac é usando o Homebrew , graças ao plugin Homebrew Cask (que agora é instalado por padrão).

Execute este comando para instalar o Java 7:

brew cask install caskroom/versions/java7
Andrew
fonte
"Erro: No available cask for caskroom / versions / java7"
jrochkind
@jrochkind Talvez o seu caskroom/versionsesteja desatualizado? Está definitivamente aqui: github.com/caskroom/homebrew-versions/blob/master/Casks/…
Andrew
@jrochkind Tente executar brew tap caskroom/versionsantes de executar o comando de instalação
Andrew
@jrochkind Se isso não funcionar, consulte a documentação do barril ou registre um problema: github.com/caskroom/homebrew-cask
Andrew
13

Pegue o barril

brew tap caskroom/cask

Instale o java7:

brew tap caskroom/versions
brew cask install java7

(Tive dificuldade em encontrar o link de download do java7 no site da oracle, pois eles estão apenas "recomendando" o java8)

EDITAR janeiro de 2018 (conforme apontado por Ankur ):

Use barril zulu7 . O Zulu é uma versão certificada do OpenJDK produzida pela Azul Systems que deve existir por um longo tempo (eles ainda oferecem versões JDK6).

brew cask install caskroom/versions/zulu7
abe312
fonte
A resposta aceita para esta pergunta está desatualizada. Esta parece ser a melhor maneira de instalar o Java 7 atualmente.
Tim Dean
este barril foi removido (veja: github.com/caskroom/homebrew-versions/pull/3914 ). a alternativa sugerida é usar o zulu7.
Ankur
9

Eu sei que alguns podem querer me bater por reabrir um post antigo, mas se você achar que é assim, espero que isso ajude alguém a tentar configurar o JDK 7 no Mac OS (usando IntelliJ).

O que fiz para que isso funcionasse em minha máquina foi:

  • seguiu as instruções na porta Oracle JDK7 Mac OS X para instalação geral
  • no IntelliJ, abra / crie um novo projeto para que você possa adicionar um novo SDK (Arquivo> Estrutura do Projeto)
  • selecione Platform Settings> SDKs, pressione o sinal "+" (mais) para adicionar um novo SDK
  • selecione JSDK e navegue até / Library / Java / JavaVirtualMachines / JDK 1.7.0 Developer Preview.jdk / Contents / Home. Não se confunda com / Users / YOUR_USERNAME / Library / Java / . Isso vinculará 4 JARs do diretório "lib" (dt.jar, jconsole.jar, sa-jdi.jar e tools.jar)
  • você também precisará adicionar JARs de / Library / Java / JavaVirtualMachines / JDK 1.7.0 Developer Preview.jdk / Contents / Home / jre / lib (charsets.jar, jce.jar, JObjC.jar, jsse.jar, management-agent .jar, resources.jar e rt.jar)
peter_budo
fonte
6

É possível que você ainda precise adicionar o JDK ao Eclipse (STS). Só porque o JDK está no sistema, não significa que o Eclipse sabe onde encontrá-lo.

Vá para Preferências> Java> JREs instalados

Se não houver uma entrada para o 1.7 JDK, adicione-a. Você terá que apontar o Eclipse para onde instalou seu 1.7 JDK.

Se o Eclipse não conseguir encontrar um JRE compatível com 1.7, estou supondo que ele apenas usa seu JRE padrão, e isso provavelmente ainda está apontando para Java 1.6, o que estaria causando suas linhas vermelhas irregulares.

Jon Quarfoth
fonte
Boa decisão! Mas preciso de mais orientações. Eu vou em JREs instalados -> Adicionar e aponto para ... / jdk1.7.0 / jre e ele encontrou um monte de arquivos JAR. Eu clico em Concluir. Felizmente tenta construir, mas agora diz ... / jdk1.7.0 / jre / bin / java: não é possível executar o arquivo binário. O que isso significa?
okysabeni
Eu não tenho certeza. Você pode tentar apontar o eclipse para o diretório base jdk em vez do diretório jre. Acho que é assim que normalmente faço no Windows, embora nunca tenha desativado o JDK padrão no meu Mac. Se isso não funcionar, você pode tentar instalar uma distribuição diferente do JDK 7 - havia alguns diferentes disponíveis no site openjdk-osx-build, talvez você tenha escolhido um que não seja compatível com o seu sistema?
Jon Quarfoth
Eu tentei isso. Isso me dá o erro "O destino não é uma raiz JDK. A biblioteca do sistema não foi encontrada"
okysabeni
6

depois de instalar o 1.7jdk do oracle, mudei meus scripts bash para adicionar:

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

e a execução java -versionmostrou a versão correta.

Dustin Getz
fonte
1

As instruções de peter_budo funcionaram perfeitamente. Tive que adicionar os jars em / Library / Java / JavaVirtualMachines / JDK 1.7.0 Developer Preview.jdk / Contents / Home / jre / lib / às minhas bibliotecas de projeto IntelliJ. agora isso trabalha como charme. Observe que não preciso que meu próprio IDE seja executado em 1.7; em vez disso, eu só precisava ser capaz de compilar e executar o 1.7. Provavelmente continuarei a usar o JRE da Apple para executar o IDE, pois é provavelmente mais estável com relação às rotinas gráficas (Swing, AWT). Como o OP, eu estava realmente interessado em testar a nova API NIO2. Parece bom até agora. Obrigado, Peter.

user1092781
fonte
1

O que funcionou para mim no Lion foi instalar o JDK7_u17 da Oracle e editar ~ / .bash_profile para incluir: export JAVA_HOME = / Library / Java / JavaVirtualMachines / jdk1.7.0_13.jdk / Contents / Home

user1015892
fonte
0

Atualizei para o Yosemite e o Android Studio não limparia meus projetos ou os executaria em um dispositivo virtual ou real devido ao seguinte erro:

Failed to complete Gradle execution.Cause:Supplied javaHome is not a valid folder. You supplied: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Após alguma pesquisa e resolução de problemas, descobri que o arquivo JDK que estava sendo apontado em "/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home" não estava lá; tudo de "JavaVirtualMachines / 1.6.0.jdk / Contents / Home" estava faltando em "/ System / Library / Java". Então, copiei "JavaVirtualMachines / 1.6.0.jdk / Contents / Home" de "/ Library / Java /" para "/ System / Library / Java /" e cha ching! Eu estava de volta aos negócios.

embersofadyingfire
fonte
0

Agora, use o comando

Atualização 2020: 04

Para instalar o Java7 com homebrew run:

brew tap homebrew/cask-versions
brew cask install java7

Espero esta ajuda.

super-up
fonte