¿Por qué tengo 3 versiones diferentes de Java en mi Mac?

hoy estaba cuidando mi versión de Java y me confundí mucho. Encontré tres diferentes:

  • Si miro en Webstorm, usa: 1.6.0_65
  • Si hago una versión java, obtengo: 1.7.0_45
  • Si miro en la configuration del sistema me sale: 1.8.0_45

¿Qué puedo hacer para tener una versión de Java de todo el sistema que será la versión que actualizo a través de la configuration de mi sistema: 1.8.0_45?

  • Posibilidad de compartir .pdf usando el correo electrónico que no funciona en Vista previa
  • Chip Yosemite WiFi muerto
  • Cómo crear un atajo de keyboard para Vista previa `Mover a ...`
  • Cómo borrar las concesiones de DHCP en OS X Server (v4.1.3-14S1127) en Yosemite 10.10.4
  • "Se ha detectado un problema de charts"
  • ¿Cómo saber si el centro de service instaló MacOS manipulado?
  • ¿Cómo puedo reparar el map de particiones después de intentar el arranque dual?
  • El disco no se monta después de habilitar el TRIM
  • 2 Solutions collect form web for “¿Por qué tengo 3 versiones diferentes de Java en mi Mac?”

    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 "Current" es un enlace que apunta a la versión real. Por lo tanto, puede tener múltiples versiones instaladas y usar múltiples 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 plugin webbrowser y el JRE / JDK completo en /Library/Java/JavaVirtualMachines/ .

    Y, además, los packages de software pueden venir con su propio package JDK / JRE. Por ejemplo, HP Peregrine Service Center lo hace.

    Entonces, cuando cada aplicación viene con su propio JDK / JRE, necesita indicar en alguna configuration cuál usar. En general, para todas las aplicaciones controladas por shell hay una variable de entorno que generalmente configura para esto y se llama JAVA_HOME. El 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 command java_home, cambia de forma permanente a Java 1.8 de 64 bits:

     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 restring: podrías hacer eso, pero no esperes que cierto software siga eso. En mi caso, instalé JRE y JDK.

    Al usar el command java_home en su secuencia de commands de llamada, siempre puede configurar la versión correcta para su aplicación, por ej.

     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 permanentemente el 1.7.x, lea https://docs.oracle.com/javase/8/docs/technotes/guides/install/mac_jdk.html

    Las diferentes aplicaciones se vincularán a diferentes bibliotecas de Java. Las aplicaciones más antiguas probablemente requerirán Java 6 (1.6.0_65), mientras que las aplicaciones más nuevas se vincularán a versiones más nuevas de Java, respectivamente.

    A modo de ejemplo, sé que la aplicación Mobile Connect para mi viejo módem Huawei 3G requiere la installation de Java 6, Adobe Photoshop CS6 requiere Java 7 (IIRC) y lo más probable es que sus browseres soliciten que ejecute la última versión de Java, que es Java 8.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).