Podría ser que solo necesites reiniciar. ¿Has intentado eso?
Bart
Sí, reinició la computadora y el terminal ... sin cambios.
Venkat
3
¿Podría aceptar la respuesta altamente votada de @markhellewell a continuación? Me habría ayudado a encontrarlo un poco más rápido, y es simplemente agradable. :)
Taytay
Respuestas:
1410
Primera ejecución /usr/libexec/java_home -Vque generará algo como lo siguiente:
MatchingJavaVirtualMachines(3):1.8.0_05, x86_64:"Java SE 8"/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home1.6.0_65-b14-462, x86_64:"Java SE 6"/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home1.6.0_65-b14-462, i386:"Java SE 6"/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
Elija la versión que desea que sea la predeterminada ( 1.6.0_65-b14-462por el bien de los argumentos) y luego:
@ MattO'Brien es algo que depende del shell que esté usando y de la configuración que tenga, así que no puedo dar una solución completa para eso ...
markhellewell
11
Realmente son los acentos abiertos en la exportlínea
David West
66
Esto no funcionó para mí. Agarrar el camino de correr inicio_java -V y añadir al comando de exportación, como este export JAVA_HOME = "/ System / Library / Java / JavaVirtualMachines / 1.6.0.jdk / Contenidos / Inicio"
Oden
68
Esto funciona en Bash - export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)también tenga en cuenta que java_home permite coincidencias parciales para que no tenga que incluir la versión completa, ya que encontrará la última instalada. Esto facilita las actualizaciones.
antonyh
15
Asegúrese de estar usando `` no '' para la exportación.
tormenta de nieve el
410
Esta respuesta es un intento de abordar: cómo controlar la versión de Java en todo el sistema (no solo en el shell que se está ejecutando actualmente) cuando se instalan varias versiones de JDK para fines de desarrollo en macOS El Capitan o posterior (Sierra, High Sierra, Mojave) . Por lo que puedo decir, ninguna de las respuestas actuales hace eso (*).
Como desarrollador, uso varios JDK y quiero cambiar fácilmente de uno a otro. Por lo general, tengo el último estable para uso general, y otros para pruebas. Pero no quiero que el sistema (por ejemplo, cuando inicio mi IDE) use la última versión de "acceso temprano" que tengo por ahora. Quiero controlar el valor predeterminado del sistema, y eso debería ser lo último estable.
deje todos los JDK en su ubicación predeterminada, debajo /Library/Java/JavaVirtualMachines. El sistema elegirá la versión más alta por defecto.
Para excluir un JDK de ser elegido de forma predeterminada, cambie el nombre Contents/Info.plistaInfo.plist.disabled . Ese JDK todavía se puede usar cuando $JAVA_HOMEapunta a él, o se hace referencia explícita en un script o configuración. Simplemente será ignorado por el javacomando del sistema .
El iniciador del sistema utilizará el JDK con la versión más alta entre los que tienen un Info.plistarchivo.
Cuando trabaje en un shell con JDK alternativo, elija su método entre las respuestas existentes ( jenvo alias / scripts personalizados /usr/libexec/java_home, etc.).
(*) Las respuestas actuales son obsoletas (ya no son válidas para macOS El Capitan o Sierra), o solo abordan un solo JDK, o no abordan el aspecto de todo el sistema. Muchos explican cómo cambiar $JAVA_HOME, pero esto solo afecta el shell actual y lo que se inicia desde allí. No afectará una aplicación iniciada desde el iniciador del sistema operativo (a menos que cambie el archivo correcto y cierre la sesión / inicio de sesión, lo cual es tedioso). Lo mismo para jenv, es genial y todo, pero por lo que puedo decir, simplemente cambia las variables de entorno, por lo que tiene la misma limitación.
Esta es la respuesta que estaba buscando, ya que jenvtampoco JAVA_HOMEpuedo configurar la versión Java de todo el sistema, es decir, la que usaría Eclipse.
Giovanni Lovato
3
@Rodrigo Sí, como se menciona en "Detalles de la investigación" (vinculado anteriormente): "Instalar un JDK también sobrescribe /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/. Aparentemente este es el que lanzará el nuevo panel de Preferencias; esta es la única excepción que encontré para mi solución: que thingy seguirá usando JDK9 (la última que instalé), pero ninguna otra aplicación Java lo hace ".
Hugues M.
2
Vale la pena señalar que las versiones de Java se encuentran en / Library / Java / JavaVirtualMachines, y que la excelente solución de trabajo anterior se encuentra dentro de ese contexto.
Andrew Kostka
3
Exactamente, esta es la mejor y la solución más funcional para esta pregunta. Lamentablemente sí.
Aerodynamika
3
No puedo agradecerles lo suficiente por esta respuesta. Esto corrigió el lanzamiento de aplicaciones desde el iniciador del sistema operativo.
Karthic Raghupathi
248
Agregando a las respuestas anteriores, puse las siguientes líneas en mi .bash_profile(o .zshrcpara MacOS 10.15+) lo que hace que sea realmente conveniente cambiar (incluido el comentario de @ elektromin para java 9):
alias j12="export JAVA_HOME=`/usr/libexec/java_home -v 12`; java -version"
alias j11="export JAVA_HOME=`/usr/libexec/java_home -v 11`; java -version"
alias j10="export JAVA_HOME=`/usr/libexec/java_home -v 10`; java -version"
alias j9="export JAVA_HOME=`/usr/libexec/java_home -v 9`; java -version"
alias j8="export JAVA_HOME=`/usr/libexec/java_home -v 1.8`; java -version"
alias j7="export JAVA_HOME=`/usr/libexec/java_home -v 1.7`; java -version"
Después de insertar, ejecutar $ source .bash_profile
Puedo cambiar a Java 8 escribiendo lo siguiente:
$ j8
java version "1.8.0_102"Java(TM) SE RuntimeEnvironment(build 1.8.0_102-b14)JavaHotSpot(TM)64-BitServer VM (build 25.102-b14, mixed mode)
Esta es la sintaxis para Java 9: alias j9="export JAVA_HOME=`/usr/libexec/java_home -v 9`; java -version"
elektromin
3
Alias simples impresionantes para un cambio rápido.
gbonetti
Usar alias j10="export JAVA_HOME=`/usr/libexec/java_home`; java -version"y luego escribir le j10permite volver a la versión actual de Java (en mi caso, Java 10)
intagli
Haría una herramienta cli similar a la nvmde cambiar las versiones de Java, pero el acrónimo jvmya significa algo más :)
Andy
Recibo este error al /Users/me/.zshrc:8: permission denied: /Library/Java/JavaVirtualMachines/openjdk-12.jdk/Contents/Home
buscar
56
Una función de peces pequeños basada en / usr / libexec / java_home
function jhome
set JAVA_HOME (/usr/libexec/java_home $argv)
echo "JAVA_HOME:" $JAVA_HOME
echo "java -version:"
java -version
end
Si no usas pescado, puedes hacer algo similar en bash:
¿Cómo configuro la variable JAVA_HOME? ¿hay un lugar en particular donde lo coloque?
Venkat
¿Dónde estoy exportando JAVA_HOME? ¿Y dónde se guardará eso?
Venkat
1
He actualizado la respuesta. ¿Conoces la versión del SDK que has instalado? El nombre de la carpeta toma el número de versión del SDK, por lo que los comandos anteriores pueden cambiar un poco.
Trein
Instalé el último, creo que es 51.
Venkat
La variable JAVA_HOMEse exportará en la sesión actual de Terminal. Puede agregarlo a nuestro .bashrcsi lo desea. Adaptaré los comandos a la última versión.
Trein
32
Usar jenv es una manera fácil.
1.Instalar jenv
curl -s get.jenv.io | golpetazo
2.Config jenv
cd ~ / .jenv / candidatos /
mkdir java
cd java
mkdir 1.7
mkdir 1.8
En lugar de "jenv use java 1.8", tuve que usar "jenv shell 1.8". "shell" también podría ser "global" o "local" dependiendo de la necesidad.
Steve Gelman
1
Jenv es agradable cuando funciona. Sin embargo, lo recomendaría, ya que "realmente" no cambia la versión predeterminada de Java utilizada, evidente al ejecutar el comando "/ usr / libexec / java_home -V", solo JAVA_HOME. Esto causa problemas extraños con algunas aplicaciones, por ejemplo, Eclipse.
Simon
Además de eso, mi parte paranoica sugiere no hacer nada para golpear. Incluso si crees que el sitio es confiable, nadie puede garantizar que sea pirateable. Use el administrador de paquetes de su sistema operativo.
Estoy usando una herramienta similar: sdkman.io/usage - En mi humilde opinión enfoque mucho mejor que los alias manuales, etc.
SathOkh
12
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
}
poner esto en su ~ / .profile y usarlo en su terminal como tal setjdk 1.8, setjdk 1.7, setjdk 9etc, etc ...
Si no tienes, removeFromPathentonces es:
function removeFromPath() {
export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
}
macOS El Capitan o una versión más reciente elegirán la versión superior del JDK disponible /Library/Java/JavaVirtualMachines, por lo que para cambiar la versión anterior, puede cambiar el nombre del archivo Info.plista otra cosa Info.plist.disabledpara que el sistema operativo elija una versión anterior.
**USAGE**/usr/libexec/java_home helps users set a $JAVA_HOME in their login rc files, or provides a way for
command-line Java tools to use the most appropriate JVM which can satisfy a minimum version or archi-
tecture requirement.The--exec argument can invoke tools in the selected $JAVA_HOME/bin directory,
which is useful for starting Java command-line tools from launchd plists without hardcoding the full
path to the Java command-line tool.Usagefor bash-style shells:
$ export JAVA_HOME=`/usr/libexec/java_home`Usagefor csh-style shells:% setenv JAVA_HOME `/usr/libexec/java_home`
Primero averigüe dónde almacena las variables de entorno.
emacs
bash_profile
archivo zshrc
Pasos para configurar la variable de entorno: -
Descarga el jdk de JAVA
instalarlo haciendo doble clic
Ahora configure las variables de entorno en su archivo
a. Para emacs.profile puede usar este enlace O ver la captura de pantalla a continuación
si. Para la configuración del perfil ZSH:
1. export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home2. source ~/.zshrc -Restart zshrc to reflect the changes.3. echo $JAVA_HOME - make sure path is set up properly
---->/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home4. java -version
--> java version "1.8.0_112"Java(TM) SE RuntimeEnvironment(build 1.8.0_112-b16)JavaHotSpot(TM)64-BitServer VM (build 25.112-b16, mixed mode)
Todo listo Ahora puede actualizar o degradar fácilmente la versión JAVA.
He adaptado la respuesta de @Alex arriba y escribí lo siguiente para arreglar el código para Java 9.
$ cat ~/.jdk
#!/bin/bash
#list available jdks
alias jdks="/usr/libexec/java_home -V"# jdk version switching - e.g.`jdk 6` will switch to version 1.6
function jdk(){
echo "Switching java version $1";
requestedVersion=$1
oldStyleVersion=8#Set the version
if[ $requestedVersion -gt $oldStyleVersion ]; then
export JAVA_HOME=$(/usr/libexec/java_home -v $1);else
export JAVA_HOME=`/usr/libexec/java_home -v 1.$1`;
fi
echo "Setting JAVA_HOME=$JAVA_HOME"
which java
java -version;}
Cambiar a Java 8
$ jdk 8Switching java version 8Setting JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/usr/bin/java
java version "1.8.0_131"Java(TM) SE RuntimeEnvironment(build 1.8.0_131-b11)JavaHotSpot(TM)64-BitServer VM (build 25.131-b11, mixed mode)
Cambiar a Java 9
$ jdk 9Switching java version 9Setting JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/usr/bin/java
java version "9.0.1"Java(TM) SE RuntimeEnvironment(build 9.0.1+11)JavaHotSpot(TM)64-BitServer VM (build 9.0.1+11, mixed mode)
¡Gracias! Aspectos a tener en cuenta, debe incluir las marcas `. y obviamente, reemplace 1.8 con cualquier versión que pueda necesitar. En mi caso 13.0.2
Jamie S
3
Si está utilizando fish y está utilizando mac y desea poder cambiar entre JDK, a continuación me funciona en mac.
La respuesta de @ kenglxn no funcionó para mí y descubrí que bcos no estableció -g, ¡que es global!
Ponga debajo debajo de ~ / .config / fish / config.fish
alias j8="jhome -v 1.8.0_162"
alias j9="jhome -v 9.0.1"
function jhome
set -g -x JAVA_HOME (/usr/libexec/java_home $argv)
echo "JAVA_HOME:" $JAVA_HOME
echo "java -version:"
java -version
end
funcsave jhome
Para saber qué versión / versión menor ha instalado, puede hacer:
/usr/libexec/java_home -V 579msWed14Feb11:44:012018MatchingJavaVirtualMachines(3):9.0.1, x86_64:"Java SE 9.0.1"/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home1.8.0_162, x86_64:"Java SE 8"/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home1.8.0_121, x86_64:"Java SE 8"/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
Basado en la respuesta de @markhellewell, creé un par de funciones de alias que lo harán por usted. Simplemente agréguelos a su archivo de inicio de shell
#list available jdks
alias jdks="/usr/libexec/java_home -V"# jdk version switching - e.g.`jdk 6` will switch to version 1.6
function jdk(){
echo "Switching java version";
export JAVA_HOME=`/usr/libexec/java_home -v 1.$1`;
java -version;}
Así es como lo hago en mi Linux (Ubuntu / Mint mate) , supongo que Mac puede hacerlo de manera similar.
Instalar y configurar
Pasos:
[Básico - parte]
Descargar jdk (el archivo .tgz ) a mano.
Descomprima y cambie el nombre correctamente, en una ubicación adecuada.
p.ej /mnt/star/program/java/jdk-1.8
Haga un enlace suave, que se cambiará para cambiar la versión de Java más adelante.
Por
ejemplo, ln -s /mnt/star/program/java/jdk-1.8 /mnt/star/program/java/java así /mnt/star/program/java/javaes el enlace suave.
Establecer JAVA_HOMEen un script de inicio.
Podría usar un archivo como /etc/profile.d/eric.sh, o simplemente usar ~/.bashrc.
p.ejJAVA_HOME=/mnt/star/program/java/java
Luego abra un nuevo bash shell. java -versiondebería imprimir la versión de java.
[Más versión - parte]
Descargue e instale más versiones de Java, según sea necesario, similar a los pasos anteriores.
p.ej /mnt/star/program/java/jdk-11
[Interruptor - parte]
En ~/.bashrc, definir variable para varias versiones de Java.
p.ej _E_JAVA_HOME_11='/mnt/star/program/java/jdk-11' _E_JAVA_HOME_8='/mnt/star/program/java/jdk-8' # dir of default version, _E_JAVA_HOME_D=$_E_JAVA_HOME_8
En ~/.bashrc, defina el comando para cambiar la versión de Java.
p.ej ## switch java version, alias jv11="rm $JAVA_HOME; ln -s $_E_JAVA_HOME_11 $JAVA_HOME" alias jv8="rm $JAVA_HOME; ln -s $_E_JAVA_HOME_8 $JAVA_HOME" # default java version, alias jvd="rm $JAVA_HOME; ln -s $_E_JAVA_HOME_D $JAVA_HOME" alias jv="java -version"
En la terminal, source ~/.bashrc para que los cambios surtan efecto.
Luego podría cambiar usando los comandos definidos.
Comandos: desde la configuración anterior
Comandos:
jv11
Cambiar a Java 11
jv8
Cambiar a Java 8
jvd
Cambie a la versión predeterminada de Java, que se indica mediante la _E_JAVA_HOME_Ddefinición anterior.
jv
Mostrar versión java.
Salida de ejemplo:
eric@eric-pc:~$ jv
java version "1.8.0_191"Java(TM) SE RuntimeEnvironment(build 1.8.0_191-b12)JavaHotSpot(TM)64-BitServer VM (build 25.191-b12, mixed mode)
eric@eric-pc:~$ jv11
eric@eric-pc:~$ jv
java version "11.0.1"2018-10-16 LTS
Java(TM) SE RuntimeEnvironment18.9(build 11.0.1+13-LTS)JavaHotSpot(TM)64-BitServer VM 18.9(build 11.0.1+13-LTS, mixed mode)
eric@eric-pc:~$ jvd
eric@eric-pc:~$ jv
java version "1.8.0_191"Java(TM) SE RuntimeEnvironment(build 1.8.0_191-b12)JavaHotSpot(TM)64-BitServer VM (build 25.191-b12, mixed mode)
eric@eric-pc:~$
Mecanismo
Cambia cambiando el enlace suave, que se utiliza como JAVA_HOME.
Consejos
En mi máquina cuando instalo jdk a mano, mantengo la versión menor, luego hago un enlace suave con la versión principal pero sin la versión menor.
por ejemplo,
// este es el directorio real, jdk1.8.0_191
// este es un enlace suave a jdk1.8.0_191 jdk-8
// este es un enlace suave a jdk-8ojdk-11 java
Defino el alias de comando en ~/.bashrc, pero defino la variable en un archivo separado.
Estoy usando ~/.eric_varpara definir las variables, y ~/.bashrclo fuente (por ejemplo source $HOME/.eric_var).
Una manera fácil de incluir un JDK instalado por separado en la lista dada por /usr/libexec/java_home -Ves vincular el directorio de la siguiente manera:
export JAVA_8_HOME=(/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home/)
export JAVA_13_HOME=(/Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home/)
alias java8='export JAVA_HOME=$JAVA_8_HOME; alias java="$JAVA_8_HOME/bin/java"; $JAVA_8_HOME/bin/java -version'
alias java13='export JAVA_HOME=$JAVA_13_HOME; alias java="$JAVA_13_HOME/bin/java"; $JAVA_13_HOME/bin/java -version'
export JAVA_HOME=$JAVA_13_HOME
Es un JavaOne simple que se puede usar para definir la versión actual de Java. La versión se puede usar en un shell que se abre después de seleccionar una versión en la herramienta.
/usr/libexec/java_home
?Respuestas:
Primera ejecución
/usr/libexec/java_home -V
que generará algo como lo siguiente:Elija la versión que desea que sea la predeterminada (
1.6.0_65-b14-462
por el bien de los argumentos) y luego:o puede especificar solo la versión principal, como:
Ahora cuando corras
java -version
verás:Agregue la
export JAVA_HOME…
línea al archivo de inicio de su shell.Para Bash (según lo indicado por antonyh ):
Para pescado (según lo establecido por ormurin)
fuente
export
líneaexport JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
también tenga en cuenta que java_home permite coincidencias parciales para que no tenga que incluir la versión completa, ya que encontrará la última instalada. Esto facilita las actualizaciones.Esta respuesta es un intento de abordar: cómo controlar la versión de Java en todo el sistema (no solo en el shell que se está ejecutando actualmente) cuando se instalan varias versiones de JDK para fines de desarrollo en macOS El Capitan o posterior (Sierra, High Sierra, Mojave) . Por lo que puedo decir, ninguna de las respuestas actuales hace eso (*).
Como desarrollador, uso varios JDK y quiero cambiar fácilmente de uno a otro. Por lo general, tengo el último estable para uso general, y otros para pruebas. Pero no quiero que el sistema (por ejemplo, cuando inicio mi IDE) use la última versión de "acceso temprano" que tengo por ahora. Quiero controlar el valor predeterminado del sistema, y eso debería ser lo último estable.
El siguiente enfoque funciona con Java 7 a 12 al menos (acceso temprano al momento de escribir este artículo), con Oracle JDK u OpenJDK (incluidas las compilaciones de AdoptOpenJDK producidas después de mediados de octubre de 2018 ).
Solución sin herramientas de terceros:
/Library/Java/JavaVirtualMachines
. El sistema elegirá la versión más alta por defecto.Contents/Info.plist
aInfo.plist.disabled
. Ese JDK todavía se puede usar cuando$JAVA_HOME
apunta a él, o se hace referencia explícita en un script o configuración. Simplemente será ignorado por eljava
comando del sistema .El iniciador del sistema utilizará el JDK con la versión más alta entre los que tienen un
Info.plist
archivo.Cuando trabaje en un shell con JDK alternativo, elija su método entre las respuestas existentes (
jenv
o alias / scripts personalizados/usr/libexec/java_home
, etc.).Detalles de la investigación en esta esencia .
(*) Las respuestas actuales son obsoletas (ya no son válidas para macOS El Capitan o Sierra), o solo abordan un solo JDK, o no abordan el aspecto de todo el sistema. Muchos explican cómo cambiar
$JAVA_HOME
, pero esto solo afecta el shell actual y lo que se inicia desde allí. No afectará una aplicación iniciada desde el iniciador del sistema operativo (a menos que cambie el archivo correcto y cierre la sesión / inicio de sesión, lo cual es tedioso). Lo mismo para jenv, es genial y todo, pero por lo que puedo decir, simplemente cambia las variables de entorno, por lo que tiene la misma limitación.fuente
jenv
tampocoJAVA_HOME
puedo configurar la versión Java de todo el sistema, es decir, la que usaría Eclipse./Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/
. Aparentemente este es el que lanzará el nuevo panel de Preferencias; esta es la única excepción que encontré para mi solución: que thingy seguirá usando JDK9 (la última que instalé), pero ninguna otra aplicación Java lo hace ".Agregando a las respuestas anteriores, puse las siguientes líneas en mi
.bash_profile
(o.zshrc
para MacOS 10.15+) lo que hace que sea realmente conveniente cambiar (incluido el comentario de @ elektromin para java 9):Después de insertar, ejecutar
$ source .bash_profile
Puedo cambiar a Java 8 escribiendo lo siguiente:
fuente
alias j9="export JAVA_HOME=`/usr/libexec/java_home -v 9`; java -version"
alias j10="export JAVA_HOME=`/usr/libexec/java_home`; java -version"
y luego escribir lej10
permite volver a la versión actual de Java (en mi caso, Java 10)nvm
de cambiar las versiones de Java, pero el acrónimojvm
ya significa algo más :)/Users/me/.zshrc:8: permission denied: /Library/Java/JavaVirtualMachines/openjdk-12.jdk/Contents/Home
Una función de peces pequeños basada en / usr / libexec / java_home
Si no usas pescado, puedes hacer algo similar en bash:
Luego para cambiar entre javas hacer:
ref: https://gist.github.com/kenglxn/1843d552dff4d4233271
fuente
export JAVA_HOME=(/usr/libexec/java_home $argv)
lugar de la segunda línea de sujhome
función.Es un poco complicado, pero intente seguir los pasos descritos en Instalación de Java en OS X 10.9 (Mavericks) . Básicamente, tendrás que actualizar tu alias
java
.Paso a paso:
Después de instalar JDK 1.7, deberá hacer esto
sudo ln -snf
para cambiar el enlace a actualjava
. Para hacerlo, abra Terminal y emita el comando:Tenga en cuenta que el directorio
jdk1.7.0_51.jdk
puede cambiar según la versión del SDK que haya instalado.Ahora, debe configurar
JAVA_HOME
para señalar dóndejdk_1.7.0_xx.jdk
se instaló. Abra nuevamente la Terminal y escriba:Puede agregar la
export JAVA_HOME
línea de arriba en su.bashrc
archivo para tener Java permanentemente en su Terminalfuente
JAVA_HOME
se exportará en la sesión actual de Terminal. Puede agregarlo a nuestro.bashrc
si lo desea. Adaptaré los comandos a la última versión.Usar jenv es una manera fácil.
1.Instalar jenv
2.Config jenv
3.Symlink la ruta jdk
4.Estás listo
comando de cambio:
establecer predeterminado:
fuente
instalar JDK, no solo JRE
da
siguiente
TextEdit le mostrará una página en blanco que puede completar.
agregar al documento:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home
en terminal:
prueba el comando:
javac -version
debería dar salida:
fuente
tl; dr
Agrega la línea:
export JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home'
al archivo
~/.bash_profile
(reemplace jdk1.8.0_144.jdk con su versión descargada)
entonces
source ~/.bash_profile
fuente
Use jenv, es como un administrador de entorno Java. Es súper fácil de usar y limpiar.
Para Mac, sigue los pasos:
Instalación: si está utilizando bash, siga estos pasos:
Agregue las versiones deseadas de JVM a jenv:
Verifique las versiones instaladas:
Configure la versión de Java que desea usar:
fuente
poner esto en su ~ / .profile y usarlo en su terminal como tal
setjdk 1.8
,setjdk 1.7
,setjdk 9
etc, etc ...Si no tienes,
removeFromPath
entonces es:function removeFromPath() { export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;") }
fuente
Cuatro sencillos pasos para usar la terminal para las personas que usan el proceso predeterminado .. :)
echo $JAVA_HOME
te da el hogar actual de java. Por ejemplo:/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/
cd /Library/Java/JavaVirtualMachines/
lo llevará a la carpeta donde normalmente instala jdks (puede ser diferente para sus máquinas)ls
aparecen las carpetas disponibles (normalmente tendrá los números de versión, por ejemplo:jdk1.8.0_191.jdk openjdk-11.0.2.jdk
)export JAVA_HOME='/Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home'
cambiará la casa de Java ..fuente
agregue el siguiente comando al
~/.zshenv
archivofuente
macOS El Capitan o una versión más reciente elegirán la versión superior del JDK disponible
/Library/Java/JavaVirtualMachines
, por lo que para cambiar la versión anterior, puede cambiar el nombre del archivoInfo.plist
a otra cosaInfo.plist.disabled
para que el sistema operativo elija una versión anterior.fuente
Desde la página de comando man oficial java_home (1) de Apple :
fuente
Si aún no puede configurarlo. utilizando este comando
export JAVA_HOME =
/usr/libexec/java_home -v 1.8
entonces tienes que usar este.
export JAVA_HOME =
$(/usr/libexec/java_home -v 1.8)
Seguramente funcionará.
fuente
Primero averigüe dónde almacena las variables de entorno.
Pasos para configurar la variable de entorno: -
Ahora configure las variables de entorno en su archivo
a. Para emacs.profile puede usar este enlace O ver la captura de pantalla a continuación
si. Para la configuración del perfil ZSH:
Todo listo Ahora puede actualizar o degradar fácilmente la versión JAVA.
fuente
Script de cambio JDK
He adaptado la respuesta de @Alex arriba y escribí lo siguiente para arreglar el código para Java 9.
Cambiar a Java 8
Cambiar a Java 9
fuente
Puede agregarlo a su .bash_profile para configurar la versión de manera predeterminada.
fuente
Si está utilizando fish y está utilizando mac y desea poder cambiar entre JDK, a continuación me funciona en mac.
La respuesta de @ kenglxn no funcionó para mí y descubrí que bcos no estableció -g, ¡que es global!
Ponga debajo debajo de ~ / .config / fish / config.fish
Para saber qué versión / versión menor ha instalado, puede hacer:
fuente
Si tiene varias versiones y desea ejecutar algo usando una versión específica, use este ejemplo:
fuente
Basado en la respuesta de @markhellewell, creé un par de funciones de alias que lo harán por usted. Simplemente agréguelos a su archivo de inicio de shell
https://gist.github.com/Noyabronok/0a90e1f3c52d1aaa941013d3caa8d0e4
fuente
Así es como lo hago en mi Linux (Ubuntu / Mint mate) , supongo que Mac puede hacerlo de manera similar.
Instalar y configurar
Pasos:
p.ej
/mnt/star/program/java/jdk-1.8
ejemplo,
ln -s /mnt/star/program/java/jdk-1.8 /mnt/star/program/java/java
así
/mnt/star/program/java/java
es el enlace suave.JAVA_HOME
en un script de inicio.Podría usar un archivo como
/etc/profile.d/eric.sh
, o simplemente usar~/.bashrc
.p.ej
JAVA_HOME=/mnt/star/program/java/java
java -version
debería imprimir la versión de java.p.ej
/mnt/star/program/java/jdk-11
~/.bashrc
, definir variable para varias versiones de Java.p.ej
_E_JAVA_HOME_11='/mnt/star/program/java/jdk-11'
_E_JAVA_HOME_8='/mnt/star/program/java/jdk-8'
# dir of default version,
_E_JAVA_HOME_D=$_E_JAVA_HOME_8
~/.bashrc
, defina el comando para cambiar la versión de Java.p.ej
## switch java version,
alias jv11="rm $JAVA_HOME; ln -s $_E_JAVA_HOME_11 $JAVA_HOME"
alias jv8="rm $JAVA_HOME; ln -s $_E_JAVA_HOME_8 $JAVA_HOME"
# default java version,
alias jvd="rm $JAVA_HOME; ln -s $_E_JAVA_HOME_D $JAVA_HOME"
alias jv="java -version"
source ~/.bashrc
para que los cambios surtan efecto.Comandos: desde la configuración anterior
Comandos:
jv11
Cambiar a Java 11
jv8
Cambiar a Java 8
jvd
Cambie a la versión predeterminada de Java, que se indica mediante la
_E_JAVA_HOME_D
definición anterior.jv
Mostrar versión java.
Salida de ejemplo:
Mecanismo
JAVA_HOME
.Consejos
En mi máquina cuando instalo jdk a mano, mantengo la versión menor, luego hago un enlace suave con la versión principal pero sin la versión menor.
por ejemplo,
// este es el directorio real,
jdk1.8.0_191
// este es un enlace suave a
jdk1.8.0_191
jdk-8
// este es un enlace suave a
jdk-8
ojdk-11
java
Defino el alias de comando en
~/.bashrc
, pero defino la variable en un archivo separado.Estoy usando
~/.eric_var
para definir las variables, y~/.bashrc
lo fuente (por ejemplosource $HOME/.eric_var
).fuente
Una manera fácil de incluir un JDK instalado por separado en la lista dada por
/usr/libexec/java_home -V
es vincular el directorio de la siguiente manera:Por ejemplo, para registrar el JDK incluido con Android Studio (1.8.0_152 en el momento de la escritura), use:
Ahora
java_home
enumerará el JDK debajoMatching Java Virtual Machines
y puede seleccionarlo como se describe anteriormente.fuente
Lo he hecho para la terminal local con
fuente
Esta herramienta hará el trabajo por usted:
http://www.guigarage.com/2013/02/change-java-version-on-mac-os/
Es un JavaOne simple que se puede usar para definir la versión actual de Java. La versión se puede usar en un shell que se abre después de seleccionar una versión en la herramienta.
fuente
SOLUCIÓN MUY FÁCIL: Qué dolor de cabeza, esta fue una solución rápida y fácil que funcionó para mí.
Mac OS Sierra versión 10.12.13
Use las teclas de acceso directo: CMD + MAYÚS + G - escriba "/ Library /"
Encuentra la carpeta JAVA
Haga clic derecho en la carpeta Java = Mover a la papelera (se requiere contraseña)
Instalar: Kit de desarrollo Java SE 8 jdk-8u131-macosx-x64.dmg | Descargar Javascript SDK
fuente