En mi configuración en macOS, estoy trabajando con varios JDK, cambiando entre ellos a través de la herramienta /usr/libexec/java_home
, similar a un método descrito en esta respuesta SO
Después de actualizar a macOS Big Sur v11.0.1, mi configuración JAVA_HOME dejó de funcionar y siempre informaba la misma versión de Java:
% /usr/libexec/java_home -V Matching Java Virtual Machines (5): 11.0.8 (x86_64) "AdoptOpenJDK" - "AdoptOpenJDK 11" /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home 1.8.162.12 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home 1.8.0_162 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home 1.8.0_45 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home 1.7.0_45 (x86_64) "Oracle Corporation" - "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home % /usr/libexec/java_home -v 1.8.162.12 /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home % /usr/libexec/java_home -v 1.7.0_45 /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
Para mí, está totalmente roto. Al deshabilitar JAVA_HOME, /usr/libexec/java_home da:
/Biblioteca/Complementos de Internet/JavaAppletPlugin.plugin/Contents/Home
Como lo intenté. Simplemente /Library/Internet Plug-Ins/JavaAppletPlugin.plugin
y vuelvo a iniciar sesión. Entonces todo funciona bien.
Para mí, https://developer.apple.com/forums/thread/666681 funcionó después de dedicar tanto tiempo a las soluciones.
Simplemente llamo a los siguientes comandos
sudo rm -fr /Librería/Internet\ Complementos/JavaAppletPlugin.plugin
sudo rm -fr /Library/PreferencePanes/JavaControlPanel.prefpane
Tuve este problema después de instalar Big Sur.
Primero comencé a desinstalar todos los JDK del sistema con:
sudo rm -rf /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin sudo rm -rf /Library/PreferencePanes/JavaControlPanel.prefPane sudo rm -rf /Library/Application\ Support/Oracle/Java/ sudo rm -rf /Library/Java/JavaVirtualMachines
Luego instalé el JDK que voy a utilizar:
brew tap AdoptOpenJDK/openjdk brew install --cask adoptopenjdk<version>
Parece que en macOS Big Sur v11.0.1 el comportamiento del /usr/libexec/java_home -v ...
ha cambiado: es sensible al valor previamente establecido de la variable de entorno JAVA_HOME
.
El comportamiento exacto no está claro, no pude encontrar ninguna documentación sobre esto, pero en mis experimentos informó la versión ya configurada en JAVA_HOME
, independientemente del interruptor -v
:
% 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 un hogar Java válido (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 asegurarse de que JAVA_HOME
no esté configurado 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
Tengo Big Sur 11.2.1 desde el 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 el 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.
Compruebe 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
Consigue solo uno que necesites:
/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 hacerlo funcionar con el primero. Me funcionó 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 esos 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 :)
De acuerdo con @Konstantin . Enfrenté el mismo problema, después de la actualización de Big Sur.
Los pasos que debes seguir para solucionar esto son:
Coincidencia de máquinas virtuales Java (2):
1.8.221.11 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home 1.8.0_221 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home
export JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home'
echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home
$> /usr/libexec/java_home -v "1.8.0" aparece para acceder al jdk exacto si está presente. Ignora el 'complemento' si está instalado. Las citas fueron recomendadas en lugares aleatorios en Internet. También se muestran en la página del manual.
La herramienta /usr/libexec/java_home
en macOS le dará la ubicación de la última versión de Java instalada. Invóquelo desde la terminal para obtener una respuesta similar a la siguiente:
/Library/Java/JavaVirtualMachines/jdk-17.0.1.jdk/Contents/Home
Navegue a la raíz y abra el archivo .zprofile
.
cd ~ open .zprofile
Si no se encuentra el archivo, cree uno usando el comando echo > .zprofile
.
Abra el archivo usando open .zprofile
. Esto debería abrirlo en un editor de texto.
Agregue la respuesta de la herramienta /usr/libexec/java_home
en el archivo de la siguiente manera:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.0.1.jdk/Contents/Home
Mi solución es crear un enlace a su archivo JDK. Aparentemente, Teradata Studio estaba ejecutando una ruta incorrecta sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/server/libjvm.dylib /Library/Java/JavaVirtualMachines/jdk1.8.0 _202.jdk/Contents/Home/lib/libserver.dylib