jdk - java_home mac sierra
¿Dónde está JAVA_HOME en macOS Mojave(10.14) a Lion(10.7)? (23)
Actualización para Java 9 y algunos alias aseados.
En .bash_profile
:
export JAVA_HOME8=`/usr/libexec/java_home --version 1.8`
export JAVA_HOME9=`/usr/libexec/java_home --version 9`
Tenga en cuenta que para la última versión es 9
y no 1.9
.
Establecer Java activo:
export JAVA_HOME=$JAVA_HOME8
export PATH=$JAVA_HOME/bin:$PATH
Algunos alias adicionales para cambiar entre las diferentes versiones:
alias j8=''export JAVA_HOME=$JAVA_HOME8; export PATH=$JAVA_HOME/bin:$PATH''
alias j9=''export JAVA_HOME=$JAVA_HOME9; export PATH=$JAVA_HOME/bin:$PATH''
Prueba en terminal:
% j8 % java -version java version "1.8.0_121" Java(TM) SE Runtime Environment (build 1.8.0_121-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode) % j9 % java -version java version "9" Java(TM) SE Runtime Environment (build 9+181) Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)
EDITAR: Actualización para Java 10
export JAVA_HOME10=`/usr/libexec/java_home --version 10` alias j10=''export JAVA_HOME=$JAVA_HOME10; export PATH=$JAVA_HOME/bin:$PATH''
Java es un paquete opcional en las últimas versiones de macOS.
Sin embargo, una vez instalado, parece que la variable de entorno JAVA_HOME no está configurada correctamente .
Con el paquete opcional de Java o Oracle JDK instalado, agregar una de las siguientes líneas a su archivo ~ / .bash_profile establecerá la variable de entorno en consecuencia.
export JAVA_HOME="$(/usr/libexec/java_home -v 1.6)"
or
export JAVA_HOME="$(/usr/libexec/java_home -v 1.7)"
or
export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)"
Actualización: se agregó el indicador -v basado en la response Jilles van Gurp .
Consiguió el mismo problema después de actualizar mi sistema operativo Mac y lo siguiente me funcionó:
cmd> vi ~ / .bash_profile
Agregue / actualice la línea para JAVA_HOME: export JAVA_HOME = "/ Library / Java / JavaVirtualMachines / jdk1.7.0_15.jdk / Contents / Home"
cmd> source ~ / .bash_profile o abre una nueva terminal
Creo que la versión jdk puede diferir, así que solo use la versión que tiene en / Library / Java / JavaVirtualMachines /
Cualquiera que use AUSKEY de la Australian Tax Office (ATO) debe desinstalar AUSKEY. Esto solucionó mis problemas de JAVA_HOME.
Tampoco es necesario para los usuarios de MAC. Yah!
En Mac OS X Lion, para configurar Visualgc para que se ejecute, utilicé:
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
Esta respuesta está relacionada con Mountain Lion y no Lion. Necesitaba hacer esto para las herramientas de línea de comandos de AWS. De acuerdo con los documentos de AWS , la ejecución de which java
devuelve /usr/bin/java
.
Entonces, puse JAVA_HOME=/usr
en mi .bashrc
.
Aparentemente, /usr/bin/java
es un enlace simbólico a /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
que hace que todo funcione.
Actualizar
Como se menciona en el comentario a continuación, este valor de JAVA_HOME
no es una solución ideal cuando la variable de entorno JAVA_HOME
debe ser utilizada por otras cosas que no sean las herramientas de línea de comandos de AWS. Sin embargo, funciona bien para las herramientas de línea de comandos de AWS, como se indica en sus documentos.
Estoy usando Fish Shell en High Sierra 10.13.4 e instalé Java a través de Brew.
No se configura automáticamente, así que para configurarlo correctly en mi sistema, ejecuto:
set -U JAVA_HOME (/usr/libexec/java_home)
Las nuevas JVM de Oracle como 1.7.0_21-b12 parecen instalarse aquí:
/Library/Internet/ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
Lo anterior no me funcionó con las herramientas EC2 de Amazon, porque espera bin/java
etc. debajo de JAVA_HOME
. /System/Library/Frameworks/JavaVM.framework/Home
funcionó.
Lo siguiente funcionó para mí. Estoy usando ZSH en OSX Yosemite con Java 8 instalado.
El siguiente comando /usr/libexec/java_home
emite la ruta al inicio de JDK:
/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
En su ~/.zshrc
,
export JAVA_HOME = "/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home"
Mi enfoque es:
.bashrc
export JAVA6_HOME=`/usr/libexec/java_home -v 1.6`
export JAVA7_HOME=`/usr/libexec/java_home -v 1.7`
export JAVA_HOME=$JAVA6_HOME
# -- optional
# export PATH=$JAVA_HOME/bin:$PATH
Esto hace que sea muy fácil cambiar entre J6 y J7
Ninguna de las respuestas anteriores me ayudó. Supongo que todas las respuestas son para OS X
Para OS X Yosemite 10.10, siga estos pasos
Use su editor de texto favorito para abrir: ~/.bash_profile
//This command will open the file using vim
$ vim ~/.bash_profile
Agregue la siguiente línea en el archivo y guárdela (: seguida de "x" para vim):
export JAVA_HOME=$(/usr/libexec/java_home)
Luego, en el terminal, escriba los siguientes dos comandos para ver la salida:
$ source ~/.bash_profile
$ echo $JAVA_HOME
En la segunda línea, está actualizando el contenido del archivo .bash_profile
.
OSX Yosemite, ZSH y Java SE Runtime Environment 8, tuve que:
$ sudo ln -s /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands /System/Library/Frameworks/JavaVM.framework/Versions/Current/bin
y en ~ / .zshrc, cambie JAVA_HOME para export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/Current"
Para Mac OS X 10.9 instalé la última versión de JRE de Oracle y luego reinicié JAVA_HOME a /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home.
Estoy seguro de que hay una mejor manera, pero me puso en marcha.
hughsmac: ~ hbrien $ echo $ JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
Para Mac Yosemite,
JDK 1.7.0_xx está utilizando
$ ls -ltar /usr/bin/java
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.7.0_xx.jdk/Contents/Home
Para OS X puedes hacer:
export JAVA_HOME=`/System/Library/Frameworks/JavaVM.framework/Versions/Current/commands/java_home`
Para mí, Mountain Lion 10.8.2, la solución más votada no funciona. Instalé jdk 1.7 a través de Oracle y maven de homebrew.
Mi solución es desde el archivo hadoop-env.sh de hadoop que instalé desde Homebrew, también. Agrego la siguiente oración en ~ / .bash_profile, y funciona.
export JAVA_HOME="$(/usr/libexec/java_home)"
Esta solución también funciona para OS X Yosemite con Java 1.8 instalado desde Oracle.
Si necesita tener varias versiones de JDK en Mac OS X (Yosemite), puede ser útil agregar algunas secuencias de comandos para el cambio automático entre ellas.
Lo que debes hacer es editar tu ~ / .bash_profile y agregar lo siguiente:
function setjdk() {
if [ $# -ne 0 ]; then
removeFromPath ''/System/Library/Frameworks/JavaVM.framework/Home/bin''
if [ -n "${JAVA_HOME+x}" ]; then
removeFromPath $JAVA_HOME
fi
export JAVA_HOME=`/usr/libexec/java_home -v $@`
export PATH=$JAVA_HOME/bin:$PATH
fi
}
function removeFromPath() {
export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
}
setjdk 1.7
Lo que hace el script es eliminar primero otras versiones de JDK en la RUTA para que no interfieran con nuestra nueva versión de JDK. Luego hace un uso inteligente de / usr / libexec / java_home que es un comando que enumera las versiones instaladas de JDK. El argumento -v le dice a java_home que devuelva la ruta del JDK con la versión suministrada, por ejemplo 1.7. También actualizamos el PATH para que apunte al directorio bin del nuevo directorio JAVA_HOME encontrado. Al final podemos simplemente ejecutar la función usando
setjdk 1.7
que selecciona la última versión instalada de JDK de la rama 1.7. Para seleccionar una versión específica simplemente puede ejecutar
setjdk 1.7.0_51
en lugar. Ejecute / usr / libexec / java_home -V para obtener más detalles sobre cómo elegir versiones.
PD: No olvide la fuente ~ / .bash_profile después de guardarlo.
Simplemente configure java_home de la versión 1.8 jdk en el archivo netbeans.conf
:
/Applications/NetBeans/NetBeans 8.2.app/Contents/Resources/NetBeans/etc/netbeans.conf
línea de comentario
netbeans_jdkhome="path/to/jdk"
y establecer el camino a su 1.8 jdk, en mi caso:
netbeans_jdkhome="/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home"
Este enfoque te permite tener varias versiones jdk en mac os
Una forma mejor (más actualizable) es usar lo siguiente:
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
Esto también debería funcionar con AWS, ya que tiene un bin
debajo de Inicio
para el usuario mac java 8 debería agregar
export JAVA_HOME=`/usr/libexec/java_home -v 1.8` # JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
java 6:
export JAVA_HOME=`/usr/libexec/java_home -v 1.6` # JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
para macOS Mojave 10.14.1 y JAVA 11.0.1 establezco el perfil como
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
# JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
Tecla en el terminal esto para confirmar:
export JAVA_HOME=`/usr/libexec/java_home -v 1.6`
# JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
/usr/libexec/java_home
no es un directorio sino un ejecutable. Da salida al JAVA_HOME configurado actualmente y en realidad no lo cambia. Para eso es la aplicación de Preferencias de Java, que en mi caso parece rota y en realidad no cambia la JVM correctamente. Enumera la JVM 1.7, pero puedo alternar / desmarcar y arrastrar y soltar todo lo que quiera sin cambiar la salida de /usr/libexec/java_home
.
Incluso después de instalar 1.7.0 u6 de Oracle en Lion y configurarlo como predeterminado en las preferencias, todavía devolvió el Apple 1.6 Java a casa. La única solución que realmente funciona para mí es configurar JAVA_HOME manualmente:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_06.jdk/Contents/Home/
Al menos de esta manera, cuando se ejecute desde la línea de comandos, usará 1.7. /usr/libexec/java_home
aún insiste en 1.6.
Actualización : comprender Java desde la línea de comandos en OSX tiene una mejor explicación sobre cómo funciona esto.
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
Es la forma de hacerlo. Nota, actualizar esto a 1.8 funciona bien.