En algunos términos, esto es un malentendido, pero espero que se aclare pronto:
El JRE / JDK empaquetado de Apple siempre se instala en /System/Library/Frameworks/JavaVM.framework/Versions/Current
, donde "Actual" es un enlace que apunta a la versión real. Por lo tanto, puede tener varias versiones instaladas y usar varias versiones en Xcode u otro IDE.
Oracle y sus instaladores instalan su JDK / JRE en /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
para el complemento del navegador web y el JRE / JDK completo en /Library/Java/JavaVirtualMachines/
.
Y, además, los paquetes de software pueden venir con su propio paquete JDK / JRE. Por ejemplo, HP Peregrine Service Center lo hace.
Entonces, cuando cada aplicación viene con su propio JDK / JRE, debe indicar en alguna configuración cuál usar. En general, para todas las aplicaciones controladas por shell hay una variable de entorno que usualmente configuras para esto y se llama JAVA_HOME. Software como Tomcat respeta esto.
Eche un vistazo más de cerca a esto:
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 el siguiente comando java_home cambias permanentemente 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)
Pero recuerda: puedes hacer eso, pero no esperes que cierto software lo siga. En mi caso instalé JRE y JDK.
Al usar el comando java_home en el script de llamada, siempre puedes configurar la versión correcta para tu aplicación, por ejemplo
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"
Para eliminar de forma permanente 1.7.x, lea enlace