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 indoloro cambiar entre Java 6 y 7 (o 7 y 8, por cierto, este método es agnóstico en cuanto a la versión).
Para cualquiera con java instalado, /usr/libexec/java_home
mostrará el directorio JAVA_HOME, pero es especialmente poderoso cuando tienes múltiples versiones de java instaladas una al lado de la otra en OS X.
Usando la bandera -V
, puedes ver todos los JVM instalados:
$ /usr/libexec/java_home -V
Máquinas virtuales de Java compatibles (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 puedes obtener el valor de JAVA_HOME para un JVM específico de esta manera:
$ /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
Juntando todo esto, esto es lo que añadí a mi ~/.profile:
## java home
alias j6="export JAVA_HOME=\$(/usr/libexec/java_home -v 1.6);echo 'usando Java 6'"
alias j7="export JAVA_HOME=\$(/usr/libexec/java_home -v 1.7);echo 'usando Java 7'"
## interruptor manual para 1.6 o 1.7
j6 ## habilitar java 6 (o simplemente ejecutar j6 en la terminal)
## j7 ## habilitar java 7 (o simplemente ejecutar j7 en la terminal)
Entonces puedes ver que en este momento, mi terminal se configura por defecto en Java6, pero puedo cambiar esto solo escribiendo j7
en la línea de comandos (o editando el ~/.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
usando 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)