Como posso alternar entre as duas versões do Java no Mountain Lion agora que o Java Preferences se foi?

32

Eu tenho duas versões do Java instaladas com o Mountain Lion:

A atualização da Apple remove as preferências do Java . Em outra pergunta, alguém se pergunta sobre a remoção desse utilitário.

Minha pergunta é diferente:

  • como posso alternar entre as duas versões agora que o Java Preferences se foi?

Anteriormente, usei o utilitário da Apple para definir preferências de Java com facilidade. Sem esse utilitário, existe uma maneira fácil e rápida?

Maverik
fonte
Existe algum motivo para você não conseguir reinstalar o Java Preferences ?
chharvey
@ TestSubject528491 Como posso fazer isso?
Maverik
Acho que isso irá ajudá-lo, ainda não o testei na minha máquina. Consulte as etapas 12 e 13 no link a seguir wikihow.com/Install-Oracle-Java-on-Ubuntu-Linux . Você pode repetir os passos para o deslocamento entre o java .. espero que isso ajude você ..
Dilip Rajkumar
@DilipRajkumar It for for linux ...
Maverik
Desculpe eu supôs erradamente que o comando linux irá funcionar no Mac .. Se eu ter sorte com outra solução i doente sugerem ..
Dilip Rajkumar

Respostas:

12

Você pode precisar de duas abordagens:

  • um para alternar a versão apenas para o plug-in de applet
  • outra abordagem para alternar a versão para outras partes do JRE sem alternar a versão para o plug-in de applet.

Meu caso de uso recente :

  • Java 8 para aplicativos que não usam o plug-in
  • Java 7 Update 9 para o plug-in de applet.

Para alternar o plug-in de applet, mas não outras partes do JRE / JDK, do Java 8 para o Java 7 Update 9

  1. saia de navegadores da web e de outros aplicativos que usem Java ou o plug-in de applet Java
  2. instalar o JDK 8
  3. reserve o plug-in
  4. instale o JRE 7 Update 9 ou o JDK 7 Update 09.

Anular: movimento sugerido

sudo mv /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin /private/var/tmp

Se você planeja mudar com frequência, pode preferir um local temporário diferente.

Resultado

sh-3.2$ java -version
java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-b58)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b02, mixed mode)
sh-3.2$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.8.2
BuildVersion:   12C60

Ao mesmo tempo:

Captura de tela da verificação da versão Java do Oracle no Safari

Para alternar o plug-in de applet, mas não outras partes do JRE / JDK, do Java 7 Update 9 para o Java 6 Update 37

Respostas em:


Para alternar o JRE, mas não o plug-in de applet, do Java 8 para o Java 7 Update 9

Instale o JDK 7 Update 09 e depois o JDK 8

  • o sistema operacional e os aplicativos serão padronizados para usar a melhor versão.

Feche todos os aplicativos que usam Java. Não é necessário sair do navegador.

Separe o jdk1.8diretório… de

/Library/Java/JavaVirtualMachines

  • o SO e os aplicativos usarão o Java 7 Update 9.

Para alternar o JRE, mas não o plug-in de applet, do Java 7 Update 9 para o Java 6 Update 37

Feche todos os aplicativos que usam Java. Não é necessário sair do navegador.

Separe o jdk1.7diretório… de

/Library/Java/JavaVirtualMachines

  • o SO e os aplicativos usarão o Java 6 Update 37.

Exemplo

macbookpro08-centrim:~ gjp22$ java -version
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)
macbookpro08-centrim:~ gjp22$ sudo mv /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk /private/var/tmp
Password:
macbookpro08-centrim:~ gjp22$ java -version
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06-434-11M3909)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01-434, mixed mode)

Geralmente

Para usuários do OS X, parte do que é fornecido pela Oracle é inicialmente enganosa:

… e assim por diante.

Simplicidade

Embora nenhuma das opções acima seja tão simples quanto alternar com o aplicativo Java Preferences instalado anteriormente pela Apple, a abordagem relativamente simples de deixar de lado (sem necessidade de desinstalação especial) lembra o desejo de instalação de arrastar e soltar ... anteriormente expressa em a área openjdk-osx-build .

Alguém pode criar um aplicativo, mas eu não recomendo o uso de links simbólicos - funcionaria, mas poderia ser inconsistente com futuras abordagens de arrastar e soltar para instalação.

Notas laterais

No momento da escrita, o mais recentes versões com suporte para o qual a Oracle faz atualizações publicamente disponíveis são (para outros fins que OS X plataformas) Java 6 Update 37 e (para plataformas, incluindo OS X) Java 7 Atualização 9.

Como liberações maiores serão disponibilizadas, reinterprete esta resposta de acordo.

A terminologia da versão Java nesta resposta está alinhada com a terminologia da Central de Ajuda do Java .

Graham Perrin
fonte
Você está realmente se referindo ao Java 8 ou é um erro? :-)
Maverik
1
Realmente ;-)… por favor, veja as perguntas relacionadas, coluna da direita.
Graham Perrin
4
Aqui está uma dica se você estiver usando o JDK8 e quiser trocar com frequência. Simplesmente chmod 0000 o diretório JDK8 para desligá-lo sudo chmod 0000 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/e ligá-lo novamente sudo chmod 0755 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/.
Brett Ryan
1
A última sugestão de @BrettRyan funcionou perfeitamente para mim. Eu acho que é o caminho mais fácil.
Artem
1
Muito obrigado @BrettRyan que foi o mais simples !!! Sugiro ao autor da resposta que adicione uma alternativa. Criei um .sh na minha pasta pessoal com os comandos e criei um Automator vinculado a uma chave que alterna de um para outro. Surpreendente!
Panthro
29

Abra um terminal, use este comando:

/usr/libexec/java_home -v 1.6 

Você pode alterar o 1.6 para qualquer versão do java que desejar usar e o comando exibirá o local em que essa versão do java reside. (ou seja: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home)

então você pode definir o JAVA_HOME como faria normalmente com a saída do comando anterior. ou seja:

export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Então, para simplificar; algo assim deve funcionar:

export JAVA_HOME=$(/usr/libexec/java_home -v 1.6)

lembre-se de verificar a versão com:

java -version

Espero que ajude.

user2343996
fonte
4
Esta é a resposta mais útil para esse problema que eu poderia encontrar em qualquer lugar online. OBRIGADO!
SearchTools-Avi
1
Ok, esta deve ser a resposta aceita. Eu tenho um JAR de atualização obrigatória para um servidor de aplicativos que eu instalei e ele SOMENTE será executado no Java 6. Com isso, consegui mudar para o Java 6, executar o atualizador e voltar. Agora eu posso atualizar o servidor de aplicativos para rodar em Java 7.
Adrian J. Moreno
4

Parece que você terá que fazer isso manualmente. A documentação da Oracle afirma que apenas um JRE pode ser instalado por vez .

Esta página de suporte da Apple descreve como alternar entre o Apple SE 6 JRE e o Oracle SE 7 JRE . Resumidamente, para alternar do JRE do Oracle para o Apple, inicie o aplicativo Terminal e digite o seguinte:

sudo mkdir -p /Library/Internet\ Plug-Ins/disabled

sudo mv /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin /Library/Internet\ Plug-Ins/disabled

sudo ln -sf /System/Library/Java/Support/Deploy.bundle/Contents/Resources/JavaPlugin2_NPAPI.plugin /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin

Há mais (e melhores) instruções na página de suporte sobre como alternar o Web Start para o JRE 6 e como mudar tudo para o Oracle JRE 7 (reinstalar o JRE).

Não é tão simples quanto usar o utilitário Java Preferences, mas é melhor que nada.

dfjacobs
fonte
1
O uso recente da Oracle do termo JRE é enganoso para os usuários do OS X. O JRE é muito mais que o plug-in.
Graham Perrin
2

com base na resposta de user2343996

alias java8="export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) && java -version"
alias java6="export JAVA_HOME=$(/usr/libexec/java_home -v 1.6) && java -version"
existeundelta
fonte
-4

Por que você precisa ter 2 versões do Java instaladas?

A Apple não possui o Java instalado como uma atualização padrão (a partir de Lion, acredito). A melhor maneira de verificar / instalar Java em um Mac é a seguinte:

  1. Terminal aberto. Digite "java" (sem as aspas, é claro)
  2. Se o java não estiver presente, você obtém o seguinte: "Nenhum Java Runtime presente, solicitando a instalação…"
  3. Java inicia a instalação normalmente (este é o falso executável que inicia a instalação)
  4. Se você tiver o java para verificar a versão, no terminal, digite "java-version"

Se você deseja instalar uma versão diferente do java: Basta ir ao site da Oracle e baixar o jdk mais novo / mais antigo.

SashaZd
fonte
Eu já tenho duas versões do Java, como escrevi na pergunta. Estou perguntando como alterar o padrão.
Maverik
Eu acho que ele muda automaticamente para a versão mais recente / mais recente instalada. No meu caso, instalei o jdk 7 por último. Então esse é o que funciona por padrão.
SashaZd
3
Eu quero poder alternar entre versões.
Maverik
Existem diferenças entre o Apple JDK 6 e o ​​Oracle JDK 7 que podem causar incompatibilidades, tanto em tempo de compilação quanto em tempo de execução.
precisa saber é o seguinte
1
Em geral, não tentamos mudar a premissa de alguém, a menos que possamos oferecer uma alternativa competitiva ou convincente quando a resposta é simplesmente não. Também desencorajamos a solicitação de votos, por isso editei isso da sua resposta.
bmike