Cosa imposta la mia Java Virtual Machine?


0

Non sto capendo come viene impostato il mio ambiente Java. Se sono installate più versioni di Java, come viene selezionata la versione corretta quando avvio un'applicazione Java dipendente?

Ho installato sia la versione 1.6 originale di Java di Java che la più recente 1.8 di Sun.

Se scrivo java -version ottengo

java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)`

ls -l /usr/bin/java produce lrwxr-xr-x 1 root wheel 74 Jun 16 2014 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java dove Current è puntato sull'installazione Java 1.6 di Apple.


Sembra il tuo /usr/bin/java è ancora Java 6 ma nel tuo .bashrc o .bash_profile il programma di installazione di Java 8 ha aggiunto il suo percorso di fronte a quello originale, in modo tale che quando lo fai java per impostazione predefinita raccoglie la versione di Java 8.
Ambidextrous

which java produce /usr/bin/java quindi non penserei che sarebbe la variabile del percorso che è il problema. Ho anche sentito che la shell è irrilevante per l'ambiente in cui vengono lanciate le applicazioni, motivo per cui i miei browser utilizzano tutti con successo l'installazione di 1.8 mentre il mio percorso è ancora puntato alla vecchia versione di Apple.
Keith

@Keith / usr / bin / java non viene utilizzato da web java che è controllato dal pannello di controllo Java
Mark

Risposte:


1

Gli eseguibili java in /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java non sono gli eseguibili che eseguono solo il compilatore java ecc. Sono wrapper che usano / usr / libexec / java_home per trovare gli eseguibili.

Java 6 di Apple è in /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin

Correre /usr/libexec/java_home -V per vedere tutte le VM Java che hai installato.


0

Nella sessione terminale corrente puoi selezionare la JVM usando /usr/libexec/java_home -v 1.8 vedere java_home --help per più opzioni.

Per le applicazioni GUI è necessario impostare JAVA_HOME come variabile di ambiente. L'impostazione delle variabili di ambiente in Mac OS è spiegata in Variabili d'ambiente in Mac OS X su StackOverflow. Fai attenzione a ~/.launchd.conf è deprecato: man launchd.con su Yosemite

... launchd.conf non viene più rispettato dal sistema. ...


Vorrei poter selezionare più di una risposta perché anche il tuo è stato utile. Sfortunatamente la spiegazione di @ Mark che gli eseguibili sono veramente involucri era la risposta diretta alla mia domanda. Anche le variabili di ambiente che hai indicato sono molto utili. Grazie.
Keith
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.