Ho avuto una situazione simile al lavoro, quindi ho fatto un po 'di ricerca e, con un paio di minuti di installazione, può essere quasi indolore passare da Java 6 a 7 (o 7 e 8, del resto - questo il metodo è agnostico).
Per chiunque abbia installato java, /usr/libexec/java_home
mostrerà la directory JAVA_HOME, ma è particolarmente potente quando hai più versioni di java installate fianco a fianco su OS X.
Usando il -V
flag, puoi vedere tutte le JVM installate:
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (3):
1.7.0_67, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home
1.6.0_65-b14-466.1, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_65-b14-466.1, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Puoi anche ottenere il valore JAVA_HOME per una JVM specifica come questa:
$ /usr/libexec/java_home -v 1.6
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
$ /usr/libexec/java_home -v 1.7
/Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home
Mettendo tutto insieme, questo è ciò che ho aggiunto al mio ~ / .profile :
## java home
alias j6="export JAVA_HOME=\$(/usr/libexec/java_home -v 1.6);echo 'using Java 6'"
alias j7="export JAVA_HOME=\$(/usr/libexec/java_home -v 1.7);echo 'using Java 7'"
## manual switch for 1.6 or 1.7
j6 ## enable java 6 (or just run j6 in terminal)
## j7 ## enable java 7 (or just run j7 in terminal)
Quindi puoi vederlo in questo momento, il mio terminale è predefinito su Java6, ma posso cambiarlo semplicemente digitando j7
sulla riga di comando (o modificando il ~ / .profile):
$ java -version
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-466.1-11M4716)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-466.1, mixed mode)
$ j7
using Java 7
$ java -version
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)