tengo que para mac instalar desde change actualizar java macos

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



oracle java (19)

JDK Switch Script

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)

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


Agregando a las respuestas anteriores, coloco las siguientes líneas en mi .bash_profile 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, ejecute $ 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)


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


DEMASIADA SOLUCIÓN: Qué dolor de cabeza: esta fue una solución fácil y rápida que me funcionó.

Mac OS Sierra versión 10.12.13

  1. Utilice las teclas de método abreviado: CMD + MAYÚS + G - escriba "/ Library /"

  2. Encuentra la carpeta JAVA

  3. Haga clic derecho en la carpeta Java = Mover a la papelera (se requiere contraseña)

  4. Instalar: Java SE Development Kit 8 jdk-8u131-macosx-x64.dmg | Descargar Javascript SDK

  5. Asegúrese de que la nueva carpeta JAVA aparezca en / BIBLIOTECA /
  6. Instalar Eclipse | Instalar Eclipse IDE para desarrolladores de Java
  7. Boom hecho

Desde la página man de java_home (1) oficial 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`


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, necesitará hacer sudo ln -snf para cambiar el enlace al java actual. Para hacerlo, abre Terminal y ejecuta 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.jdk puede cambiar dependiendo de la versión de SDK que haya instalado.

Ahora, necesita configurar JAVA_HOME para que apunte a donde se instaló jdk_1.7.0_xx.jdk . Abre de nuevo la Terminal y escribe:

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

Puede agregar la línea de export JAVA_HOME arriba en su archivo .bashrc para tener java permanentemente en su Terminal



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 ejecuta actualmente) cuando se instalan varias versiones de JDK con fines de desarrollo en macOS El Capitan o más recientes (Sierra, High Sierra, Mojave) . Por lo que puedo decir, ninguna de las respuestas actuales hace eso (*).

Como desarrollador, uso varios JDK y quiero cambiar de uno a otro fácilmente. Por lo general, tengo la última versión estable para uso general y otras para pruebas. Pero no quiero que el sistema (por ejemplo, cuando inicie 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 más estable posible.

El siguiente enfoque funciona con Java 7 a 12 al menos (acceso temprano al momento de escribir este artículo), con Oracle JDK o OpenJDK (incluidas las compilaciones realizadas por 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, bajo /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 de Contents/Info.plist a Info.plist.disabled . Ese JDK aún se puede usar cuando $JAVA_HOME apunta, o se hace referencia explícita en un script o configuración. Simplemente será ignorado por el comando java del sistema.

El Info.plist sistema utilizará el JDK con la versión más alta entre aquellos que tienen un archivo Info.plist .

Cuando trabaje en un shell con JDK alternativo, elija su método entre las respuestas existentes ( jenv o alias / scripts personalizados alrededor de /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 general del sistema. Muchos explican cómo cambiar $JAVA_HOME , pero esto solo afecta el shell actual y lo que se inicia 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 / iniciar 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.


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 desde java.
  2. instálalo haciendo doble clic
  3. Ahora configura las variables de entorno en tu archivo.

    a. Para emacs.profile puede usar este link 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 puedes actualizar o degradar fácilmente la versión JAVA.


Primero ejecute /usr/libexec/java_home -V que 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-462 por 1.6.0_65-b14-462 de 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 ejecute java -version verá:

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)

Solo agregue la línea de export JAVA_HOME… al archivo de inicio de su shell.


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

La respuesta de @Kenglxn no me funcionó y me di cuenta de que bcos no establecía -g, ¡lo cual es global!

Colóquelo 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 tienes instalada, puedes 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


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

/usr/libexec/java_home -v 1.7.0_75 --exec java -jar you-file.jar


Si todavía no eres capaz de configurarlo. usando este comando

exportar 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á.


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 usas pescado, puedes hacer algo similar en bash:

#!/bin/bash jhome () { export JAVA_HOME=`/usr/libexec/java_home $@` echo "JAVA_HOME:" $JAVA_HOME echo "java -version:" java -version }

Luego, para cambiar entre javas, haz:

$> 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


Usa jenv, es como un gestor de entorno Java. Es super facil de usar y limpio

Para Mac, sigue 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

Compruebe las versiones instaladas:

jenv versions

Establece la versión de Java que quieres usar de la siguiente manera:

jenv global oracle64-1.6.0


Usar jenv es una manera fácil.

1.Instalar jenv

curl -s get.jenv.io | bash

2.Config jenv

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

3.Enlazar 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. estas todo listo

comando de cambio:

jenv use java 1.8

establecer predeterminado:

jenv default java 1.7


instala 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 a doc: 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)"

intente el comando:

javac -version

debe dar salida:

javac 1.8.0_111


tl; dr

Añade la línea:

export JAVA_HOME=''/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home''

al archivo

~/.bash_profile

Reemplace con su versión descargada.

entonces source ~/.bash_profile


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 }

ponga esto en su perfil ~ /. y utilícelo en su terminal como setjdk 1.8 , setjdk 1.7 , setjdk 9 etc etc ...

Si no tiene removeFromPath entonces es:

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