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.