0 votos

configurar correctamente JAVA en MAC

Soy nuevo en mac (vengo del mundo de Windows). He leído un poco sobre cómo y dónde se configura JAVA HOME en una máquina mac. Tengo algunas suposiciones que se enumeran a continuación, sería genial si alguien puede ir a través y proporcionar algunos comentarios sobre el mismo.

  • /Library/Java/JavaVirtualMachines es donde veo instalados jdk 1.7 y jdk 1.8. En el futuro, si instalo más versiones de JDK, supongo que se instalarán en esta ruta.

  • Veo que /System/Library/Java/JavaVirtualMachines/ tiene 1.6.0.jdk instalado. Supongo que se trata del Java 6 de Apple que viene instalado con mi mac por defecto. Además, ¿cuál es la diferencia entre instalar un JDK en /Library/Java/JavaVirtualMachines/ frente a /System/Library/Java/JavaVirtualMachines/.

  • /usr/libexec/java_home -V es una utilidad que lista todas las jvm;s en la máquina. Veo correctamente JVM 1.6 (x86, i386), 1.7 y 1.8. He añadido "export JAVA_HOME= /usr/libexec/java_home " en mi .bash_profile para establecer mi java_home a JDK 1.8.

  • /Sistema/Biblioteca/Frameworks contiene un montón de accesos directos en su interior. Realmente no quiero pasar tiempo entendiendo los frameworks en este punto, pero esto parece ser algún tipo de capa de redirección para decidir qué JVM usar. Hay una carpeta llamada /System/Library/Frameworks/JavaVM.framework/Versions que contiene un montón de accesos directos (1.4, 1.6, 1.6.0 etc) que apuntan a CurrentJDK. CurrentJDK es un acceso directo a jdk 1.6 (/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents)

¿Qué implicaciones tiene esto? ¿Qué ocurre si JAVA_HOME apunta al JDK 1.8 y /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK apunta al jdk 1.6?

¿Significa esto que cuando cambiamos JAVA_HOME, debemos cambiar también /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK?

  • Hay otra carpeta llamada /System/Library/Frameworks/JavaVM.framework/Versions/Current/ que es un acceso directo a /System/Library/Frameworks/JavaVM.framework/Versions/A. Ahora, he leído en algún post que

    Los ejecutables de java en >System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java no son >los ejecutables que sólo ejecutan el compilador de java, etc. Son envoltorios que >utilizan /usr/libexec/java_home para encontrar los ejecutables.

Estoy asumiendo que si los programas obtienen el último java de /System/Library/Frameworks/JavaVM.framework/Versions/Current/ y si /System/Library/Frameworks/JavaVM.framework/Versions/Current/ usa /usr/libexec/java_home para encontrar los ejecutables entonces terminaría usando jdk 1.8 en mi caso. ¿Esta suposición es correcta?

  • Por lo tanto, parece que hay 4 variables aquí, donde $JAVA_HOME está apuntando, donde /usr/libexec/java_home te lleva, donde hace /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK punto a y finalmente donde hace /System/Library/Frameworks/JavaVM.framework/Versions/Current punto a. Sería estupendo si alguien pudiera comentar la forma correcta de configurar JAVA_HOME para que todas las aplicaciones, el terminal de Windows, etc. utilicen la misma versión de JVM.

1voto

yoliho Puntos 340

Lo único que importa si se ejecuta a través de /usr/bin/java es el valor de JAVA_HOME y se puede establecer para todos los terminales, etc. Por ejemplo, para obtener la última versión 1.7 añada a su shell de inicio script (por ejemplo, ~/.bashrc)

export JAVA_HOME=`/usr/libexec/java_home -v '1.7*'

Desgraciadamente, las aplicaciones (es decir, las GUI instaladas como paquetes de aplicaciones de OS X, por ejemplo, Eclipse) acceden al java que está configurado en su información de paquete (que puede ser una ruta completa a una en /Library o /System/Library o podría ser /usr/bin/java), por lo que es necesario examinar cada caso.

La diferencia entre instalar un JDK en /Library/Java/JavaVirtualMachines frente a /System/Library/Java/JavaVirtualMachines/ es que este último es instalado por Apple como parte del sistema operativo y el otro por un tercero

El CurrentJDK es la forma en que Apple versiona los frameworks de OS X - en el caso de Java no creo que importe ahora (en los días anteriores a la versión 1.7 podría haber sido la forma en que funcionaba la antigua pestaña de preferencias de Java, pero eso es una suposición)

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X