Várias versões Java suportam no OS X e na localização JAVA_HOME

12

Eu sei que é possível ter várias versões do Java no OS X, mas acho difícil entender como ele funciona.

Eu atualizei para o Mountain Lion e agora echo $JAVA_HOMEestá vazio.

No entanto, em /System/Library/Frameworks/JavaVM.framework/Versions/

1.4     1.5     1.6     A       CurrentJDK
1.4.2   1.5.0   1.6.0   Current

Quando entro na 1.4.2 e executo java - versionou./java -version

Java (TM) SE Runtime Environment (compilação 1.6.0 _33-b03-424-11M3720)

Então, por que todas essas versões são usadas se elas têm a mesma versão do Java?

Então baixei o JDK 7 da Oracle e o instalei.

Onde um novo JDK geralmente é instalado?

E pergunta final: como posso escolher qual versão deve ser executada por padrão em todos os aplicativos?

In Win. Defino JAVA_HOMEcomo C:/ProgramFiles/Java/.… coloquei no Path: location para JAVA_HOME/bine é isso.

Cris
fonte
1
Talvez seja interessante, já que a Oracle recentemente usa o termo JRE para descrever o plug-in de applet Java sozinho (confuso!); e como os usuários do OS X agora podem usar duas versões diferentes simultaneamente (uma versão para o plug-in, uma versão diferente para aplicativos que não usam o plug-in): Como gerenciar melhor versões diferentes de java no Mountain Lion?
Graham Perrin

Respostas:

3

Conteúdo de /System/Library/Frameworks/JavaVM.framework/Versions

Para a maioria dos casos de uso, CurrentJDKdeve fornecer a funcionalidade das versões atuais e passadas do JDK.

Nem todas as versões anteriores, mas as versões mais comuns necessárias:

sh-3.2$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.8
BuildVersion:   12A269
sh-3.2$ ls -l /System/Library/Frameworks/JavaVM.framework/Versions
total 64
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.4 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.4.2 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.5 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.5.0 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.6 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.6.0 -> CurrentJDK
drwxr-xr-x  8 root  wheel  272 17 Jul 07:48 A
lrwxr-xr-x  1 root  wheel    1 17 Jul 07:47 Current -> A
lrwxr-xr-x  1 root  wheel   59 17 Jul 07:47 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
sh-3.2$ 
Graham Perrin
fonte
14

Preferindo uma versão do Java

Use as Preferências Java da maneira normal.

Dependendo do que você instalou, além da distribuição de Java da Apple, a primeira guia do utilitário pode parecer um pouco diferente.

Um exemplo, sem as opções familiares para applets e Java Web Start:

Captura de tela das preferências do Java

Há algumas leituras básicas sobre como isso funciona no nível da linha de comando. A ferramenta de linha de comando java_home reporta essa configuração de preferência.

$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/1.6.0_33-b03-424.jdk/Contents/Home

O aplicativo de espaço reservado / usr / bin / java utiliza essas configurações para executar a versão preferida do Java.

$ which java
/usr/bin/java

$ java -version
java version "1.6.0_33"
Java(TM) SE Runtime Environment (build 1.6.0_33-b03-424-11M3720)
Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03-424, mixed mode)

Finalmente, ao configurar JAVA_HOME em um script de inicialização para Tomcat ou Maven, você pode conectar-se ao sistema de preferências:

export JAVA_HOME=`/usr/libexec/java_home`

As respostas em outros lugares observam que o Java pode ser instalado em vários caminhos - 

  • / Sistema / Biblioteca / Java / JavaVirtualMachines
  • / Biblioteca / Java / JavaVirtualMachines
  • ~ / Biblioteca / Java / JavaVirtualMachines

- mas para o que está descrito atualmente na pergunta aqui, o JDK da Oracle no Mountain Lion, apenas um caminho é provável .

Graham Perrin
fonte
Obrigado pela edição da comunidade, deve haver um link diferente para a leitura em segundo plano?
Graham Perrin
2
O Java Preferences não é mais suportado e é realmente removido quando se aplica a atualização do Java 2012-006 . Isso faz parte do afastamento da Apple de fornecer e dar suporte a Java.
precisa saber é o seguinte
Obrigado @BryanH - esta resposta foi dada alguns meses antes do Java para OS X 2012-006 - veja a pergunta vinculada. Também vale lembrar que enquanto a Apple se afasta de distribuições do JRE, devemos não assumir que a Apple deixará de suportar Java.
Graham Perrin
Sim obrigado. Acho que devo esclarecer que "suporte" significa que a Apple não está mais fornecendo ou respondendo perguntas técnicas sobre a Java Virtual Machine para OSX. Cabe à Oracle (ou outro terceiro) escrever e manter a referida JVM.
precisa saber é o seguinte
5

Como o Mac OS X 10.8.2 Build 12C60, as Preferências de Java não mostram mais as versões mais antigas.

Carlo
fonte
3

Caminhos usados ​​para instalação de JDKs

Corre:

ls -l /Library/Java/JavaVirtualMachines

Outros caminhos podem ser usados, mas para o JDK atual da Oracle, instalado no Mountain Lion, você provavelmente encontrará o .jdkpacote nesse caminho.

Graham Perrin
fonte