Solución:
Parece que en macOS Big Sur v11.0.1 el comportamiento del /usr/libexec/java_home -v ...
El comando ha cambiado: es sensible al valor previamente establecido de JAVA_HOME
Variable ambiental.
El comportamiento exacto no está claro, no pude encontrar ninguna documentación sobre esto, pero en mis experimentos informó que la versión ya estaba configurada JAVA_HOME
, a pesar de -v
cambiar:
% JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home /usr/libexec/java_home -v 1.8.0_162
/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
Además, noté que no informa nada, si JAVA_HOME
está configurado, pero no apunta a una casa Java válida (también para -V
):
% JAVA_HOME=dummy /usr/libexec/java_home -v 1.7.0_45
% JAVA_HOME=dummy /usr/libexec/java_home -V
%
La solución es asegurar JAVA_HOME
es no establecer antes de ejecutar /usr/libexec/java_home
:
% unset JAVA_HOME ; /usr/libexec/java_home -v 1.8.0_162
/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home
Como lo intenté. Acabo de borrar el /Library/Internet Plug-Ins/JavaAppletPlugin.plugin
y volver a iniciar sesión. Entonces todo funciona bien.
Tengo Big Sur 11.2.1 del 18.02.2021. Tuve el mismo problema con la configuración de la ruta JAVA_HOME. Después de leer mucha información, resolví mi problema con lo siguiente:
Instale JDK 8: https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html Java SE Development Kit 8u281
Instálelo como de costumbre en su MacOS Big Sur.
Verifique la versión de JDK:
java -version
java version "1.8.0_281"
Java(TM) SE Runtime Environment (build 1.8.0_281-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.281-b09, mixed mode)
Compruebe qué versiones de JDK ya están instaladas en su máquina:
/usr/libexec/java_home -V
Matching Java Virtual Machines (2):
1.8.281.09 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
1.8.0_281 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_281.jdk/Contents/Home
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
Obtenga solo uno que necesita:
/usr/libexec/java_home -v 1.8.0_281
/Library/Java/JavaVirtualMachines/jdk1.8.0_281.jdk/Contents/Home
En Catalina y Big Sur, hay Z-shell, para agregar variables de entorno como JAVA_HOME hay dos archivos para eso: ~ / .zshenv y ~ / .zshrc, no pude hacer que funcione con el primero. Funcionó para mí así:
nano ~/.zshrc
Agregue a ese archivo esta línea:
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8.0_281)
Presione Ctrl + X y guarde los cambios.
Luego ejecute el comando para aplicar los cambios a la terminal actual:
source ~/.zshrc
Después de eso, puede verificar si todo funciona con el comando:
echo $JAVA_HOME
it will print you: /Library/Java/JavaVirtualMachines/jdk1.8.0_281.jdk/Contents/Home
Reinicie su terminal y los programas que usarán la variable JAVA_HOME. Para mí fue Android Studio. Ahora todo funciona bien. Soy nuevo en Mac OS y me tomó 4 horas resolver esto. Con Windows se hace en un minuto 🙂