El escenario es el siguiente:
Tenemos varias versiones de Java en OS X y queremos cambiar de versión fácilmente porque dependiendo del proyecto en el que estamos necesitamos compilar con una o con otra.
Normalmente, OS X viene con la versión 1.6 de Java que es la que distribuye Apple, versión totalmente desaconsejable si desarrollas con Java. Así que lo habitual es instalar Java 7 o Java 8 que ha salido no hace mucho. Para obtener instrucciones de cómo instalar Java en OS X haz clic aquí
Pues bien, una vez tenemos instaladas varias versiones de Java en OS X, tendremos algo parecido a esto (dependiendo de las actualizaciones instaladas):
- Java 1.6 -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
- Java 1.7 -> /Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home
- Java 1.8 -> /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
Gestionando varias versiones de Java en OS X con un enlace simbólico
Para gestionar correctamente varias versiones de Java en OS X lo normal es hacerse un enlace simbólico de la versión de Java que queremos utilizar. Supongamos que queremos utilizar la versión 1.7 de Java, haremos un enlace simbólico tal que así:
ln -s [RUTA_A_LA_VERSION_DE_JAVA] [RUTA_AL_ENLACE_SIMBÓLICO]
En este caso para configurar Java 1.7:
ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home /Library/Java/Home
De esta manera /Library/Java/Home estará apuntando a la versión 1.7 de Java.
Configurando JAVA_HOME
Lo siguiente que hay que hacer es exportar /Library/Java/Home como la variable JAVA_HOME del sistema, por ejemplo editando nuestro archivo ~/.profile y añadiendo esta línea:
export JAVA_HOME=/Library/Java/Home
¿Cómo cambiar de versión de Java?
Y ya lo tenemos. A partir de este momento, si queremos cambiar de versión de Java sólo tenemos que cambiar el enlace simbólico, por ejemplo, para dejar de utilizar Java 1.7 y utilizar Java 1.8 escribiríamos algo así:
ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home /Library/Java/Home
Y no haría falta tocar nada más. En fin, cosas de Java que no son evidentes del todo y que nunca viene de más tener una chuletilla por ahí.
Por cierto, truco cortesía de @ReservaDel84
Saludos amigo, gracias de antemano por tu aporte. Soy nuevo en el uso de los mac y cuando ejecuto tu comando ma sale el mensaje “Permission denied” podrías ayudarme con una posible manera de superarlo ?
Ya encontré la solución para los permisos era muy sencilla “sudo” pero aun no me funciona la solución.
Lo que busco es poder abrir una instalación de Netbeans 7.3 en la que tengo un proyecto con GlassFish 3.1 y java 1.6 pero mi Mac se actualizo a java 1.8 y no puedo abrir Netbeans.
Podrías ayudarme un poco mas…
No se como comprobar que realmente se halla cambiado el llamado del jdk 1.6 para la ejecución de Netbeans. Ejecuto el java -version en la terminal pero me sigue saliendo java 1.8.
Hola,
no uso Netbeans pero parece que se puede forzar la versión de Java con la que quieres que arranque:
https://wiki.netbeans.org/FaqInstallJavahome
Saludos!
Gracias Alberto por la información.
Una pregunta, que API de desarrollo para JAVA en MAC recomiendas mara sus multiples tanto WEB como aplicaciones de escritorio o cliente servidor
Hola,
no sé a qué te refieres con API. Supongo que te refieres a qué IDE para desarrollar para Java en Mac. Yo uso Eclipse J2EE, con el plugin para Maven y configurado Tomcat como servidor de aplicaciones.
Saludos.