Supporto per più versioni Java su OS X e posizione JAVA_HOME

12

So che è possibile avere più versioni di Java su OS X ma trovo difficile capire come funziona.

Ho eseguito l'upgrade a Mountain Lion e ora echo $JAVA_HOME è vuoto.

Tuttavia in /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 passo in 1.4.2 e eseguo java - version o ./java -version

Java(TM) SE Runtime Environment (build 1.6.0_33-b03-424-11M3720)

Quindi perché tutte quelle versioni sono utilizzate se hanno la stessa versione di Java?

Poi ho scaricato il JDK 7 da Oracle e l'ho installato.

Dove solitamente viene installato un nuovo JDK?

E ultima domanda: come posso scegliere quale versione deve essere eseguita di default da tutte le applicazioni?

In Win. Ho impostato JAVA_HOME su C:/ProgramFiles/Java/.… Ho inserito Path: location to JAVA_HOME/bin e il gioco è fatto.

    
posta Cris 27.07.2012 - 21:52
fonte

4 risposte

3

Contenuti di /System/Library/Frameworks/JavaVM.framework/Versions

Per la maggior parte dei casi d'uso, CurrentJDK dovrebbe fornire la funzionalità delle versioni precedenti e del JDK.

Non tutte le versioni precedenti, ma le versioni più comunemente richieste:

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$ 
    
risposta data 31.07.2012 - 00:49
fonte
14

Preferire una versione di Java

Utilizza le Preferenze Java nel modo normale.

A seconda di ciò che è stato installato in aggiunta alla distribuzione Apple di Java, la prima scheda dell'utilità potrebbe apparire un po 'diversa.

Un esempio, senza le opzioni familiari per le applet e Java Web Start:

C'èqualche lettura di fondo su come funziona a livello di riga di comando. Lo strumento della riga di comando java_home riporta questa impostazione delle preferenze.

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

L'app segnaposto / usr / bin / java utilizza queste impostazioni per eseguire la versione preferita di 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)

Infine, quando configuri JAVA_HOME in uno script di avvio per Tomcat o Maven, puoi collegarti al sistema delle preferenze:

export JAVA_HOME='/usr/libexec/java_home'

Le risposte altrove indicano che Java può essere installato su più percorsi -

  • / System / Library / Java / JavaVirtualMachines
  • / Library / Java / JavaVirtualMachines
  • ~ / Library / Java / JavaVirtualMachines

- ma per ciò che è attualmente descritto nella domanda qui, il JDK di Oracle on Mountain Lion, è probabile un solo percorso .

    
risposta data 31.07.2012 - 00:53
fonte
5

Poiché Preferenze di Java per Mac OS X 10.8.2 Build 12C60 non mostra più le versioni precedenti.

    
risposta data 22.01.2013 - 11:58
fonte
3

Percorsi utilizzati per l'installazione di JDK

Esegui:

ls -l /Library/Java/JavaVirtualMachines

È possibile utilizzare altri percorsi, ma per l'attuale JDK di Oracle, installato su Mountain Lion, probabilmente troverai il pacchetto .jdk in quel percorso.

    
risposta data 31.07.2012 - 00:43
fonte

Leggi altre domande sui tag