Soy nuevo en Mac (procedente del mundo de Windows). Hice algunas lecturas sobre cómo y dónde se establece JAVA HOME en una máquina mac. Tengo algunas suposiciones que se enumeran a continuación, sería genial si alguien pudiera revisarlas y proporcionar alguna información sobre el mismo.
-
/ Library / Java / JavaVirtualMachines es donde veo jdk 1.7 y jdk 1.8 instalados. 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 este es el Java 6 de Apple que se instaló con mi Mac de forma predeterminada? Además, ¿cuál es la diferencia entre instalar un JDK en / Library / Java / JavaVirtualMachines vs / System / Library / Java / JavaVirtualMachines /.
-
/ usr / libexec / java_home -V es una utilidad que enumera todos los jvm; s en la máquina. Con razón veo JVM 1.6 (x86, i386), 1.7 y 1.8. He agregado "exportar JAVA_HOME =
/usr/libexec/java_home
" en mi .bash_profile para configurar mi java_home en JDK 1.8. -
/ System / Library / Frameworks contiene un montón de accesos directos dentro de él. Realmente no quiero dedicar tiempo a comprender los marcos en este punto, pero parece ser un 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é implicación tiene esto? Qué ocurre si JAVA_HOME apunta a JDK 1.8 y /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK apunta a jdk 1.6.
¿Esto significa que cuando cambiamos JAVA_HOME, también debemos cambiar /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, leí en algún post que
Los ejecutables java en > /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java no son los ejecutables que simplemente ejecutan el compilador java, etc. Son envoltorios que > use / usr / libexec / java_home para encontrar los ejecutables.
- Por lo tanto, parece que hay 4 variables aquí, a las que apunta $ JAVA_HOME, donde / usr / libexec / java_home te lleva, a dónde apunta /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK y, finalmente, a dónde apunta /System/Library/Frameworks/JavaVM.framework/Versions/Current. Sería genial si alguien pudiera comentar sobre la forma correcta de configurar JAVA_HOME para que todas las aplicaciones, ventanas de terminal, etc. usen la misma versión de JVM.