¿Cómo configurar o cambiar la versión predeterminada de Java (JDK) en OS X?

889
Venkat 2014-02-23 19:46.

¿Cómo se puede cambiar la versión predeterminada de Java en una mac?

27 answers

1632
markhellewell 2014-07-10 05:23.

Primera ejecución /usr/libexec/java_home -Vque dará como resultado algo como lo siguiente:

Matching Java Virtual Machines (3):
1.8.0_05, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
1.6.0_65-b14-462, x86_64:   "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.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:

export JAVA_HOME=`/usr/libexec/java_home -v 1.6.0_65-b14-462`

o puede especificar solo la versión principal, como:

export JAVA_HOME=`/usr/libexec/java_home -v 1.8`

Ahora, cuando corras java -version, verás:

java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)

Agregue la export JAVA_HOME…línea al archivo init de su shell.

Para Bash (según lo declarado por antonyh ):

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

Para pescado (según lo indicado por ormurin)

set -x JAVA_HOME (/usr/libexec/java_home -d64 -v1.8)

La actualización del archivo .zshrc debería funcionar:

nano ~/.zshrc

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

Presione CTRL + X para salir del editor Presione Y para guardar sus cambios

source ~/.zshrc
echo $JAVA_HOME
java -version
449
Hugues M. 2017-05-25 12:25.

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 con fines de desarrollo en macOS El Capitan o más reciente (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. Normalmente 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 el último estable.

El siguiente enfoque funciona con Java 7 a 12 al menos (acceso temprano en el 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:

  • deje todos los JDK en su ubicación predeterminada, en /Library/Java/JavaVirtualMachines. El sistema elegirá la versión más alta de forma predeterminada.
  • Para excluir un JDK de la selección predeterminada, cámbiele el nombre Contents/Info.plistaInfo.plist.disabled . Ese JDK aún se puede usar cuando $JAVA_HOMEapunta a él, o se hace referencia explícitamente en un script o configuración. Simplemente será ignorado por el javacomando del sistema .

El lanzador 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.).


Detalles de la investigación en esta esencia .


(*) Las respuestas actuales son obsoletas (ya no son válidas para macOS El Capitan o Sierra), solo abordan un único JDK, o no abordan el aspecto de todo el sistema. Muchos explican cómo cambiar $JAVA_HOME, pero esto solo afecta al shell actual y lo que se lanza desde allí. No afectará a 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.

279
Justin Zhang 2016-11-23 15:57.

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 Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
55
kenglxn 2015-06-17 08:51.

Una función de pez pequeño 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 usa pescado, puede hacer algo similar en bash:

#!/bin/bash

jhome () {
  export JAVA_HOME=`/usr/libexec/java_home [email protected]`
  echo "JAVA_HOME:" $JAVA_HOME
  echo "java -version:"
  java -version
}

Luego, para cambiar entre javas, haga lo siguiente:

$> jhome           #switches to latest java
$> jhome -v 1.7    #switches to java 1.7
$> jhome -v 1.6    #switches to java 1.6

ref: https://gist.github.com/kenglxn/1843d552dff4d4233271

35
Yuantao 2015-05-29 18:38.

Usar jenv es una forma fácil.

1.Instalar jenv

curl -s get.jenv.io | bash

2.Configurar jenv

cd ~/.jenv/candidates/
mkdir java
cd java
mkdir 1.7
mkdir 1.8

3.Symlink la ruta jdk

ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin ~/.jenv/candidates/java/1.7
ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin ~/.jenv/candidates/java/1.8

4 estás listo

comando de cambio:

jenv usa java 1.8

establecer predeterminado:

jenv predeterminado java 1.7

33
Trein 2014-02-23 19:49.

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 a java.

Paso a paso:

Después de instalar JDK 1.7, deberá hacer lo necesario sudo ln -snfpara cambiar el enlace a actual java. Para hacerlo, abra Terminal y emita el comando:

sudo ln -nsf /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents \
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

Tenga en cuenta que el directorio jdk1.7.0_51.jdkpuede cambiar según la versión de SDK que haya instalado.

Ahora, debe establecer JAVA_HOMEque apunte a dónde jdk_1.7.0_xx.jdkse instaló. Abra nuevamente la Terminal y escriba:

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home"

Puede agregar la export JAVA_HOMElínea de arriba en su .bashrcarchivo para tener java permanentemente en su Terminal

28
user2708060 2016-11-01 03:02.

instale JDK, no solo JRE

/usr/libexec/java_home -v 1.8

da

/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home

siguiente

touch .bash_profile

open -a TextEdit.app .bash_profile

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:

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

prueba el comando:

javac -version

debería generar:

javac 1.8.0_111
27
dustinevan 2017-10-04 08:22.

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

24
slal 2017-05-11 08:58.

Utilice jenv, es como un administrador de entorno Java. Es súper fácil de usar y limpiar.

Para Mac, siga los pasos:

brew install jenv

git clone https://github.com/gcuisinier/jenv.git ~/.jenv

Instalación: si está utilizando bash, siga estos pasos:

$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile

echo 'eval "$(jenv init -)"' >> ~/.bash_profile

$ exec $SHELL -l

Agregue las versiones deseadas de JVM a jenv:

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

jenv add /System/Library/Java/JavaVirtualMachines/1.8.0.jdk/Contents/Home

Verifique las versiones instaladas:

jenv versions

Configure la versión de Java que desea utilizar mediante:

jenv global oracle64-1.6.0
12
Gabriel Reiser 2017-04-07 11:45.
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 lo tiene, removeFromPathentonces es:

function removeFromPath() { export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;") }

12
Abbin Varghese 2019-09-13 22:19.

Cuatro sencillos pasos con terminal para personas que utilizan el proceso predeterminado .. :)

  1. echo $JAVA_HOMEle da inicio de Java actual. Por ejemplo:/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/

  2. cd /Library/Java/JavaVirtualMachines/ lo llevará a la carpeta donde normalmente instala jdks (puede ser diferente para sus máquinas)

  3. lsaparecen las carpetas disponibles (normalmente tendrá los números de versión, por ejemplo: jdk1.8.0_191.jdk openjdk-11.0.2.jdk)
  4. export JAVA_HOME='/Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home' cambiará el inicio de Java ..
9
xsilen T 2019-03-29 02:36.

agregar el siguiente comando al ~/.zshenvarchivo

export JAVA_HOME=`/usr/libexec/java_home -v 1.8` 
9
Joaquín L. Robles 2019-10-24 07:09.

macOS El Capitan o una versión posterior elegirá la versión superior del JDK disponible en /Library/Java/JavaVirtualMachines, por lo que, para degradar, puede cambiar el nombre del archivo Info.plista algo diferente Info.plist.disabledpara que el sistema operativo elija una versión anterior.

8
Amin Agha 2020-03-05 10:12.

Puede agregarlo a su .bash_profile para tener la versión configurada por defecto.

//Open bash profile
open ~/.bash_profile

export JAVA_HOME=`/usr/libexec/java_home -v 1.8`

// run bash profile
source ~/.bash_profile
6
Antonio 2014-11-19 03:39.

Desde la página de manual oficial de java_home (1) de Apple :

**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.

   Usage for bash-style shells:
          $ export JAVA_HOME=`/usr/libexec/java_home`

   Usage for csh-style shells:
          % setenv JAVA_HOME `/usr/libexec/java_home`
6
Rohit Kumar 2018-09-27 18:32.

Si aún no puede configurarlo. usando este comando.

exportar JAVA_HOME =/usr/libexec/java_home -v 1.8

entonces tienes que usar este.

exportar JAVA_HOME =$(/usr/libexec/java_home -v 1.8)

seguramente funcionará.

6
Vrushali Raut 2018-09-30 06:59.

Primero averigüe dónde almacena las variables de entorno

  1. emacs
  2. bash_profile
  3. archivo zshrc

Pasos para configurar la variable de entorno: -

  1. Descarga el jdk de JAVA

  2. instalarlo haciendo doble clic

  3. 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

segundo. Para la configuración del perfil ZSH:

1. export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home

2. 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/Home

4. java -version 

   -->  java version "1.8.0_112"  Java(TM) SE Runtime Environment (build 1.8.0_112-b16)Java HotSpot(TM) 64-Bit Server VM (build 25.112-b16, mixed mode)

Todo listo Ahora puede actualizar o degradar fácilmente la versión JAVA ..

5
Marcello de Sales 2017-12-04 20:54.

Script de conmutador JDK

He adaptado la respuesta de @Alex anterior y escribí lo siguiente para corregir 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 8
Switching java version 8
Setting JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
/usr/bin/java
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

Cambiar a Java 9

$ jdk 9
Switching java version 9
Setting JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
/usr/bin/java
java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)
5
feistyfawn 2020-10-24 01:57.
  1. Agregue la siguiente línea de código a su .zshrc (o bash_profile ):

alias j = 'f () {exportar JAVA_HOME = /usr/libexec/java_home -v $1}; f'

  1. Guardar en sesión:

$ fuente .zshrc

  1. Ejecutar comando (por ejemplo, j 13, j14, j1.8 ...)

$ j 1.8

Explicación Esto está parametrizado por lo que no es necesario actualizar el script como se publicaron otras soluciones. Si no tiene la JVM instalada, se le indicará. Ejemplos de casos a continuación:

/Users/user/IDE/project $ j 1.8
/Users/user/IDE/project $ java -version
openjdk version "1.8.0_265"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_265-b01)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.265-b01, mixed mode)
/Users/user/IDE/project $ j 13
/Users/user/IDE/project $ java -version
openjdk version "13.0.2" 2020-01-14
OpenJDK Runtime Environment (build 13.0.2+8)
OpenJDK 64-Bit Server VM (build 13.0.2+8, mixed mode, sharing)
/Users/user/IDE/project $ j 1.7
Unable to find any JVMs matching version "1.7".
4
Gob00st 2018-02-15 01:44.

Si está usando fish y está usando mac y desea poder cambiar entre JDK, a continuación, funciona para mí en mac.

La respuesta de @ kenglxn no funcionó para mí y descubrí que bcos no configuró -g, que es global.

Ponga 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 secundaria ha instalado, puede hacer:

/usr/libexec/java_home -V                                                                              579ms  Wed 14 Feb 11:44:01 2018
Matching Java Virtual Machines (3):
    9.0.1, x86_64:  "Java SE 9.0.1" /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
    1.8.0_162, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home
    1.8.0_121, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
3
MonstroDev 2015-02-04 00:29.

Si tiene varias versiones y desea ejecutar algo usando una versión específica, use este ejemplo:

/usr/libexec/java_home -v 1.7.0_75 --exec java -jar you-file.jar
2
Alex 2017-03-09 05:55.

Basado en la respuesta de @markhellewell, creé un par de funciones de alias que lo harán por usted. Solo agrégalos a tu 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; 
}

https://gist.github.com/Noyabronok/0a90e1f3c52d1aaa941013d3caa8d0e4

2
Eric Wang 2018-12-10 01:41.

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]
  • Descargue jdk (el archivo .tgz ) manualmente.
  • 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 guión de inicio.
    Podría usar file like /etc/profile.d/eric.sh, o simplemente usar ~/.bashrc.
    p.ejJAVA_HOME=/mnt/star/program/java/java
  • Luego abre un nuevo shell bash. java -versiondebería imprimir la versión de Java.
  • [Más versión - parte]
  • Descargue e instale más versión de Java, según sea necesario, similar a los pasos anteriores.
    p.ej
    /mnt/star/program/java/jdk-11
  • [Interruptor - parte]
  • En ~/.bashrc, defina la 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, define 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 terminal, source ~/.bashrcpara que los cambios surtan efecto.
  • Entonces 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 con la _E_JAVA_HOME_Ddefinición anterior.
  • jv
    Muestra la versión de Java.

Salida de ejemplo:

[email protected]:~$ jv
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

[email protected]:~$ jv11
[email protected]:~$ jv
java version "11.0.1" 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)

[email protected]:~$ jvd
[email protected]:~$ jv
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

[email protected]:~$ 

Mecanismo

  • Cambia cambiando el enlace suave, que se usa 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

    // esto es un enlace simbólico al directorio 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 las ~/.bashrcobtendré (por ejemplo source $HOME/.eric_var).

2
friederbluemle 2019-01-15 02:47.

Una manera fácil de incluir un JDK instalado por separado en la lista proporcionada por /usr/libexec/java_home -Ves enlazar simbólicamente el directorio de la siguiente manera:

sudo ln -s path/to/jdk /Library/Java/JavaVirtualMachines/jdk-[some-identifier].jdk

Por ejemplo, para registrar el JDK incluido con Android Studio (1.8.0_152 en el momento de escribir este artículo), use:

sudo ln -s /Applications/Android\ Studio.app/Contents/jre/jdk /Library/Java/JavaVirtualMachines/jdk-android-studio.jdk

Ahora java_homeenumerará el JDK debajo Matching Java Virtual Machinesy puede seleccionarlo como se describe anteriormente.

2
joensson 2020-08-12 23:16.

Anteriormente usé alias en .zshrc para cambiar fácilmente entre versiones, pero hoy uso SDKMAN. SDKMAN también puede manejar la configuración predeterminada de Java para el sistema y la descarga e instalación de nuevas versiones de Java.

Una vez que sdkman está instalado, puede ejecutar comandos similares a los que es posible con la herramienta nvm para manejar versiones de nodos.

sdk list javaenumerará las versiones de Java disponibles en su sistema, así como las disponibles en línea para la instalación, incluido su identificador que puede usar en los comandos sdk use, sdk defaulty sdk install.

Por ejemplo, para instalar Amazon Corretto 11.0.8 y preguntar si debería ser el nuevo predeterminado, haga esto: sdk install java 11.0.8-amzn

Una característica que también utilizo habitualmente es el .sdkmanrcarchivo. Si lo coloca en un directorio de su máquina y ejecuta el sdk envcomando en el directorio, puede configurar las versiones de la herramienta que se usan solo en ese directorio. También es posible hacer que sdkman cambie las versiones de la herramienta automáticamente usando la sdkman_auto_env=trueconfiguración.

sdkman también admite el manejo de otras herramientas para la JVM como gradle, kotlin, maven y más.

Para obtener más información, consulte https://sdkman.io/usage#env

1
Trackhe 2020-04-09 04:48.

Lo he hecho para la terminal local con

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
0
Hendrik Ebbers 2014-10-13 23:14.

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 utilizar para definir la versión actual de Java. La versión se puede utilizar en un shell que se abre después de seleccionar una versión en la herramienta.

Related questions

MORE COOL STUFF

La estrella de HGTV, Christina Hall, revela que tiene 'envenenamiento por mercurio y plomo' probablemente por voltear 'casas asquerosas'

La estrella de HGTV, Christina Hall, revela que tiene 'envenenamiento por mercurio y plomo' probablemente por voltear 'casas asquerosas'

La estrella de HGTV, Christina Hall, revela que le diagnosticaron envenenamiento por mercurio y plomo, probablemente debido a su trabajo como manipuladora de casas.

La estrella de 'Love Is Blind' Brennon Lemieux responde a los cargos de violencia doméstica

La estrella de 'Love Is Blind' Brennon Lemieux responde a los cargos de violencia doméstica

Recientemente salió a la luz un informe policial que acusa a la estrella de 'Love Is Blind', Brennon, de violencia doméstica. Ahora, Brennon ha respondido a los reclamos.

Wynonna Judd se dio cuenta de que ahora es la matriarca de la familia Judd en un momento festivo de pánico

Wynonna Judd se dio cuenta de que ahora es la matriarca de la familia Judd en un momento festivo de pánico

Conozca cómo Wynonna Judd se dio cuenta de que ahora es la matriarca de la familia mientras organizaba la primera celebración de Acción de Gracias desde que murió su madre, Naomi Judd.

Experto en lenguaje corporal explica los 'paralelos' entre Kate Middleton y la princesa Diana

Experto en lenguaje corporal explica los 'paralelos' entre Kate Middleton y la princesa Diana

Descubra por qué un destacado experto en lenguaje corporal cree que es fácil trazar "tales paralelismos" entre la princesa Kate Middleton y la princesa Diana.

Los láseres arrojan luz sobre por qué necesita cerrar la tapa antes de descargar

Los láseres arrojan luz sobre por qué necesita cerrar la tapa antes de descargar

Los inodoros arrojan columnas de aerosol invisibles con cada descarga. ¿Como sabemos? La prueba fue capturada por láseres de alta potencia.

The Secrets of Airline Travel Quiz

The Secrets of Airline Travel Quiz

Air travel is far more than getting from point A to point B safely. How much do you know about the million little details that go into flying on airplanes?

Where in the World Are You? Take our GeoGuesser Quiz

Where in the World Are You? Take our GeoGuesser Quiz

The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!

¿Caduca el repelente de insectos?

¿Caduca el repelente de insectos?

¿Sigue siendo efectivo ese lote de repelente de insectos que te quedó del verano pasado? Si es así, ¿por cuánto tiempo?

Estados Unidos podría evitarse el horror del nuevo gran horneado británico

Estados Unidos podría evitarse el horror del nuevo gran horneado británico

Si este tráiler de pesadilla de la temporada más reciente de Great British Bake Off te asustó y te hizo no volver a ver el programa, es posible que tengas suerte: PBS no ha decidido si se transmitirá o no la última temporada en los Estados Unidos. actualización, para aquellos que no siguen sin aliento este tipo de drama de nicho: el presentador Paul Hollywood y la hermosa carpa llena de batidoras de colores pastel y cuadros se trasladaron de la BBC al Canal 4; Mary Berry, Sue Perkins y Mel Giedroyc renunciaron.

Atún como Oh, Hello llega a Netflix

Atún como Oh, Hello llega a Netflix

Foto: Netflix Oh, Hello On Broadway (Netflix): Después de llegar a Broadway el año pasado, los dos locos del Upper West Side interpretados por John Mulaney y Nick Kroll finalmente llegaron a Netflix. El especial consta del espectáculo en el escenario, algunos momentos entre bastidores y un invitado muy especial de “Too Much Tuna”.

Actualice a un Sonicare por tan solo $ 30

Actualice a un Sonicare por tan solo $ 30

¿Quiere probar un cepillo de dientes Sonicare sin gastar mucho dinero en uno de sus modelos favoritos de gama alta? Puede comprar un kit de la Serie 2 o Serie 3 por tan solo $ 30 hoy en Amazon. Haga clic aquí para ver la lista completa de modelos elegibles y tenga en cuenta que se descontarán $ 10 adicionales en su carrito.

Ponle una tapa. En realidad, ponle una tapa a todo. Consigue 12 tapas de cocina elásticas de silicona por $14. [Exclusivo]

Ponle una tapa. En realidad, ponle una tapa a todo. Consigue 12 tapas de cocina elásticas de silicona por $14. [Exclusivo]

Tapas elásticas de silicona de Tomorrow's Kitchen, paquete de 12 | $14 | Amazonas | Código promocional 20OFFKINJALids son básicamente los calcetines de la cocina; siempre perdiéndose, dejando contenedores huérfanos que nunca podrán volver a cerrarse. Pero, ¿y si sus tapas pudieran estirarse y adaptarse a todos los recipientes, ollas, sartenes e incluso frutas en rodajas grandes que sobran? Nunca más tendrás que preocuparte por perder esa tapa tan específica.

Patinaje artístico de EE. UU. 'frustrado' por falta de decisión final en evento por equipos, pide una decisión justa

Patinaje artístico de EE. UU. 'frustrado' por falta de decisión final en evento por equipos, pide una decisión justa

El equipo está a la espera de las medallas que ganó en los Juegos Olímpicos de Invierno de 2022 en Beijing, ya que se está resolviendo un caso de dopaje que involucra a la patinadora artística rusa Kamila Valieva.

Los compradores de Amazon dicen que duermen 'como un bebé mimado' gracias a estas fundas de almohada de seda que cuestan tan solo $ 10

Los compradores de Amazon dicen que duermen 'como un bebé mimado' gracias a estas fundas de almohada de seda que cuestan tan solo $ 10

Miles de compradores de Amazon recomiendan la funda de almohada de seda Mulberry, y está a la venta en este momento. La funda de almohada de seda viene en varios colores y ayuda a mantener el cabello suave y la piel clara. Compre las fundas de almohada de seda mientras tienen hasta un 46 por ciento de descuento en Amazon

Se busca al corredor de los Bengals Joe Mixon por orden de arresto emitida por presuntamente apuntar con un arma de fuego a una mujer

Se busca al corredor de los Bengals Joe Mixon por orden de arresto emitida por presuntamente apuntar con un arma de fuego a una mujer

El jueves se presentó una denuncia de delito menor amenazante agravado contra Joe Mixon.

Profesor de la Universidad de Purdue arrestado por presuntamente traficar metanfetamina y proponer favores sexuales a mujeres

Profesor de la Universidad de Purdue arrestado por presuntamente traficar metanfetamina y proponer favores sexuales a mujeres

El Departamento de Policía de Lafayette comenzó a investigar a un profesor de la Universidad de Purdue en diciembre después de recibir varias denuncias de un "hombre sospechoso que se acercaba a una mujer".

Concept Drift: el mundo está cambiando demasiado rápido para la IA

Concept Drift: el mundo está cambiando demasiado rápido para la IA

Al igual que el mundo que nos rodea, el lenguaje siempre está cambiando. Mientras que en eras anteriores los cambios en el idioma ocurrían durante años o incluso décadas, ahora pueden ocurrir en cuestión de días o incluso horas.

India me está pateando el culo

India me está pateando el culo

Estoy de vuelta por primera vez en seis años. No puedo decirte cuánto tiempo he estado esperando esto.

ℝ

“And a river went out of Eden to water the garden, and from thence it was parted and became into four heads” Genesis 2:10. ? The heart is located in the middle of the thoracic cavity, pointing eastward.

¿Merrick Garland le ha fallado a Estados Unidos?

Es más de la mitad de la presidencia de Biden. ¿Qué está esperando Merrick Garland?

¿Merrick Garland le ha fallado a Estados Unidos?

Creo, un poco tarde en la vida, en dar oportunidades a la gente. Generosamente.

Language