¿Qué debo configurar JAVA HOME en OSX


Muchas aplicaciones Java que utilizan scripts de shell para configurar su entorno utilizan la variable de entorno JAVA_HOME para iniciar la versión correcta de Java, localizar JRE JARs, etc.

En OSX 10.6, las siguientes rutas parecen ser válidas para esta variable

/Library/Java/Home
/System/Library/Frameworks/JavaVM.framework/Home
/System/Library/Frameworks/JavaVM.framework/Versions/Current

Algunos de estos son enlaces simbólicos a la máquina virtual actual (como se define en el panel de preferencias de Java).

Pero ¿cuál debe usarse-o está bien usar cualquiera de ellos?

Author: Zearin, 2009-08-28

13 answers

¿El Leopardo de las Nieves todavía tiene /usr/libexec/java_home? En 10.5, acabo de establecer JAVA_HOME a la salida de ese comando, que debe darle la ruta de Java especificada en sus preferencias de Java. Aquí hay un fragmento de mi archivo .bashrc, que establece esta variable:

export JAVA_HOME=$(/usr/libexec/java_home)

No he experimentado ningún problema con esa técnica.

De vez en cuando tengo que cambiar el valor de JAVA_HOME a una versión anterior de Java. Por ejemplo, un programa que estoy manteniendo requiere Java 5 de 32 bits en OS X, por lo que cuando se utiliza programa, he establecido JAVA_HOME ejecutando:

export JAVA_HOME=$(/usr/libexec/java_home -v 1.5)

Para aquellos de ustedes que no tienen java_home en su camino añádalo así.

sudo ln -s /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home /usr/libexec/java_home
 786
Author: mipadi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-06 16:48:03

Además, es interesante establecer su CAMINO para reflejar el JDK. Después de añadir JAVA_HOME (que se puede hacer con el ejemplo citado por 'mipadi'):

export JAVA_HOME=$(/usr/libexec/java_home)

Añadir también en ~/.perfil:

export PATH=${JAVA_HOME}/bin:$PATH

P.d.: Para OSX, generalmente uso .perfil en el directorio de INICIO en lugar de .bashrc

 35
Author: lucasarruda,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-08 18:55:59

Hoy en día Java parece estar instalado en/Library/Java / JavaVirtualMachines

 14
Author: Nicolas Mommaerts,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-05-07 21:13:17

Estoy teniendo MAC OS X(Sierra) 10.12.2 .

Configuré JAVA_HOME para que funcione en React Native (para aplicaciones Android) siguiendo los siguientes pasos.

  • Abra Terminal (Comando + R, escriba Terminal, Presione ENTER).

  • Añada las siguientes líneas a ~/.bash_profile . export JAVA_HOME=$(/usr/libexec/java_home)

  • Ahora ejecute el siguiente comando. source ~/.bash_profile

  • Puede comprobar el valor exacto de JAVA_HOME escribiendo lo siguiente comando. echo $JAVA_HOME

El valor(salida) devuelto será algo así como a continuación. /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home

Eso es.

 14
Author: hygull,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-21 06:02:50

Estoy en Mac OS 10.6.8

La solución más fácil funciona para mí es simplemente poner en

$ export JAVA_HOME=$(/usr/libexec/java_home)

Para probar si funciona, poner en

$ echo $JAVA_HOME

Se muestra

/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

También puede probar

$ which java
 10
Author: Rae,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-12 20:40:15

Tiendo a usar /Library/Java/Home. La forma en que funciona el panel preferencias debe estar actualizada con su versión preferida.

 9
Author: Clint,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-28 19:23:41

Eso de arriba ya no funciona en YOSEMITE para APLICACIONES GRÁFICAS! Como eclipse, o cualquier cosa comenzó con Spotlight. (.bash_profile, launchd.conf funciona solo para sesiones de terminal.) Antes de iniciar eclipse, simplemente abra una ventana de terminal y dé el siguiente comando:

Launchctl setenv JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents / Home

(Con la ruta de instalación! Tal vez funciona con $(/usr/libexec / java_home) en lugar de la ruta completa demasiado.)

Vea todo el excelente artículo sobre la solución permanente aquí: Estableciendo variables de entorno a través de launchd.conf ya no funciona en OS X Yosemite/El Capitan / macOS Sierra?

 6
Author: Pálossy László,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:02:48

He encontrado esta pila para ayudar, estaba teniendo el mismo problema y pude arreglar:

Mi ruta de Java estaba aquí:

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

Y era necesario poner en mi .bash_profile:

export JAVA_HOME=\"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home\"

Esperanza ayuda

 2
Author: Shirow,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:47:29

Como señalan otras respuestas, la forma correcta de encontrar el directorio Java home es usar /usr/libexec/java_home.

La documentación oficial para esto se encuentra en Q&A Técnica de Apple QA1170: Directorios Java importantes en OS X: https://developer.apple.com/library/mac/qa/qa1170/_index.html

 1
Author: Kristopher Johnson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-27 15:01:35

Para mí maven parece trabajar fuera del archivo .mavenrc:

echo "export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)" > ~/.mavenrc

Estoy seguro de que lo recogí también, simplemente no puedo recordar dónde.

 1
Author: maksimov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-08 19:22:35

Omitiendo la configuración del terminal ya que mencionó las aplicaciones, la configuración de la variable de entorno del sistema permanente (funciona para macOS Sierra; también debería funcionar para El Capitan):

launchctl setenv JAVA_HOME $(/usr/libexec/java_home -v 1.8)

(esto establecerá JAVA_HOME a la última 1.8 JDK, lo más probable es que haya pasado por actualizaciones serveral, por ejemplo, javac 1.8.0_101, javac 1.8.0_131)
Por supuesto, cambiar 1.8 a 1.7 o 1.6 (realmente?) para satisfacer sus necesidades y su sistema

 1
Author: ericn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-11 10:04:43

Crear archivo ~/.mavenrc

Luego pega esto en el archivo

export JAVA_HOME=$(/usr/libexec/java_home)

Prueba

mvn -v

 0
Author: KhaledMohamedP,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-28 18:07:17

Para los usuarios de Concha de pescado, use algo como lo siguiente: alias java7 "set -gx JAVA_HOME (/usr/libexec/java_home -v1.7)"

 -1
Author: Yichuan Wang,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-28 01:01:25