In alcuni termini si tratta di un malinteso, ma spero che diventi presto più chiaro:
Il JRE / JDK in confezione Apple è sempre installato in /System/Library/Frameworks/JavaVM.framework/Versions/Current
, dove "Corrente" è un collegamento che punta alla versione attuale. Pertanto, puoi avere più versioni installate e utilizzare più versioni in Xcode o altri IDE.
Oracle e i suoi installatori installano il loro JDK / JRE in /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
per il plugin webbrowser e l'intero JRE / JDK in /Library/Java/JavaVirtualMachines/
.
Inoltre, i pacchetti software possono venire con il loro pacchetto JDK / JRE. Ad esempio, HP Peregrine Service Center lo fa.
Quindi, quando ogni applicazione viene fornita con il proprio JDK / JRE, è necessario indicare in una configurazione quale utilizzare. In generale, per tutte le applicazioni basate su shell esiste una variabile d'ambiente che di solito si imposta per questo e si chiama JAVA_HOME. Un software come Tomcat rispetta questo.
Dai un'occhiata più da vicino a questo:
endor-2:~ garex$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
1.8.0_45, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
1.7.0_71, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
Con il seguente comando java_home si passa in modo permanente a Java 1.8 64 bit:
endor-2:~ garex$ java -fullversion
java full version "1.7.0_71-b14"
endor-2:~ garex$ /usr/libexec/java_home -v 1.8 -d64
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
endor-2:~ garex$ which java
/usr/bin/java
endor-2:~ garex$ java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
Ma ricorda: puoi farlo, ma non aspettarti che alcuni software seguano questo. Nel mio caso ho installato JRE e JDK.
Usando il comando java_home nello script chiamante puoi sempre configurare la versione corretta per la tua applicazione, ad es.
endor-2:~ garex$ /usr/libexec/java_home -v 1.8 -d64 -exec java -fullversion
java full version "1.8.0_45-b14"
endor-2:~ garex$ /usr/libexec/java_home -v 1.7.0 -d64 -exec java -fullversion
java full version "1.7.0_71-b14"
Per rimuovere in modo permanente il file 1.7.x, leggi link