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


12

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

Ho eseguito l'aggiornamento 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 vado in 1.4.2 e eseguo java - versiono./java -version

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

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

Quindi ho scaricato JDK 7 da Oracle e l'ho installato.

Dove di solito è installato un nuovo JDK?

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

In Win. Ho impostato JAVA_HOMEsu C:/ProgramFiles/Java/.… Ho inserito Path: location to JAVA_HOME/bine basta.


1
Forse interessante dal momento che Oracle ha recentemente usato il termine JRE per descrivere il solo plug-in dell'applet Java (confuso!); e poiché gli utenti di OS X possono ora utilizzare due versioni diverse contemporaneamente (una versione per il plug-in, una versione diversa per le app che non utilizzano il plug-in): Come gestire al meglio diverse versioni java su Mountain Lion?
Graham Perrin,

Risposte:


3

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

Per la maggior parte dei casi d'uso, CurrentJDKdovrebbe fornire la funzionalità delle versioni attuali e precedenti di 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$ 

14

Preferendo una versione di Java

Utilizzare le preferenze Java nel modo normale.

A seconda di ciò che hai installato oltre alla distribuzione Apple di Java, la prima scheda dell'utilità potrebbe apparire leggermente diversa.

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

Schermata delle preferenze Java

C'è qualche lettura di base su come funziona a livello di riga di comando. Lo strumento da riga di comando java_home riporta questa impostazione di preferenza.

$ /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, durante la configurazione di JAVA_HOME in uno script di avvio per Tomcat o Maven, puoi collegarti al sistema delle preferenze:

export JAVA_HOME=`/usr/libexec/java_home`

Altre risposte notano che Java può essere installato su diversi percorsi: 

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

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


Grazie per la modifica della community, dovrebbe esserci un link diverso per la lettura in background?
Graham Perrin,

2
Le preferenze Java non sono più supportate e vengono effettivamente rimosse quando si applica l' aggiornamento Java 2012-006 . Questo fa parte del passaggio di Apple dal fornire e supportare Java.
BryanH,

@BryanH grazie - questa risposta è stata data alcuni mesi prima di Java per OS X 2012-006 - vedi la domanda collegata. Si prega inoltre di notare che, mentre Apple ha si allontana dalla distribuzione di JRE, dovremmo non supporre che Apple cesserà di supportare Java.
Graham Perrin,

Sì grazie. Immagino che dovrei chiarire che "supporto" significa che Apple non sta più fornendo o rispondendo a domande tecniche sulla Java Virtual Machine per OSX. Spetta a Oracle (o un'altra terza parte) scrivere e mantenere detta JVM.
BryanH,

5

Poiché le preferenze Java di Mac OS X 10.8.2 Build 12C60 non mostrano più le versioni precedenti.


3

Percorsi utilizzati per l'installazione di JDK

Correre:

ls -l /Library/Java/JavaVirtualMachines

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.