Tuve una situación similar en el trabajo, así que investigué un poco y, con un par de minutos de configuración, puede ser casi indiferente alternar entre Java 6 y 7 (o 7 y 8, para eso importa - este método es la versión agnóstica).
Para cualquier persona con java instalado, /usr/libexec/java_home
mostrará el directorio JAVA_HOME, pero es especialmente poderoso cuando tiene varias versiones de java instaladas una al lado de la otra en OS X.
Al utilizar el indicador -V
, puede ver todos de las JVM instaladas:
$ /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
También puede obtener el valor JAVA_HOME para una JVM específica como esta:
$ /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
Poniendo todo esto junto, esto es lo que agregué a mi ~ / .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)
Así que puedes ver eso ahora, mi terminal está por defecto en Java6, pero puedo cambiar esto simplemente escribiendo j7
en la línea de comando (o editando ~ / .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)