nota: Estas soluciones funcionan para varias versiones de Java, incluido Java 8 y el nuevo Java 13, y para cualquier otra versión anterior de Java cubierta por los administradores de versiones enumerados. Esto incluye JDK alternativos de OpenJDK, Oracle, IBM, Azul, Amazon Correto, Graal y más. ¡Trabaja fácilmente con Java 7, Java 8, Java 9, Java 10, Java 11, Java 12 y Java 13!
Tiene algunas opciones sobre cómo hacer la instalación y administrar la conmutación JDK. La instalación puede ser realizada por Homebrew, SDKMAN , Jabba o una instalación manual. El cambio se puede hacer mediante JEnv , SDKMAN , Jabba o manualmente mediante la configuración JAVA_HOME
. Todos estos se describen a continuación.
Instalación
Primero, instale Java utilizando el método que prefiera, incluidos Homebrew, SDKMAN o una instalación manual del archivo tar.gz. Las ventajas de una instalación manual es que la ubicación del JDK se puede colocar en una ubicación estandarizada para Mac OSX.
Instalar con SDKMAN
Este es un modelo simple, ya que maneja la instalación y el cambio de versión, con la advertencia de que instala el JDK en un directorio no estándar.
< vea más abajo "Instalación y cambio de versiones con SDKMAN" >
Instalar usando Jabba
Este también es un modelo simple, ya que tanto la instalación como el cambio de versión son manejados por la misma herramienta. Las instalaciones se realizan en un directorio no estándar.
< vea más abajo "Instalación y cambio de versiones con Jabba" >
Instalar manualmente desde la página de descarga de OpenJDK:
Descargue OpenJDK para Mac OSX desde http://jdk.java.net/ (por ejemplo, Java 13 )
Desarchive el tar de OpenJDK y coloque la carpeta resultante (es decir jdk-13.jdk
) en su /Library/Java/JavaVirtualMachines/
carpeta ya que esta es la ubicación estándar y esperada de las instalaciones de JDK. También puede instalar en cualquier lugar que desee en realidad.
Instalar con Homebrew
La versión de Java disponible en Homebrew Cask antes del 3 de octubre de 2018 era, de hecho, la JVM de Oracle. Ahora, sin embargo, ahora se ha actualizado a OpenJDK. Asegúrese de actualizar Homebrew y luego verá la última versión disponible para instalar.
instale Homebrew si aún no lo ha hecho. Asegúrese de que esté actualizado:
brew update
Agregue el toque de barriles, si aún no lo ha hecho (o si ya no ve versiones anteriores de Java con el paso 3):
brew tap homebrew/cask-versions
y para las versiones de AdoptOpenJDK , agregue ese toque:
brew tap adoptopenjdk/openjdk
Estos barriles cambian sus versiones de Java a menudo, y puede haber otros toques con versiones adicionales de Java.
Busque versiones instalables:
brew search java
o para las versiones de AdoptOpenJDK:
brew search jdk
Verifique los detalles de la versión que se instalará:
brew cask info java
o para la versión AdoptOpenJDK:
brew cask info adoptopenjdk
Instalar una versión específica del JDK como java11
, adoptopenjdk8
, o simplemente java
o adoptopenjdk
para la corriente. Por ejemplo:
brew cask install java
También puede usar la ruta de acceso completa a versiones anteriores:
brew cask install homebrew/cask-versions/java11
Y se instalarán en /Library/Java/JavaVirtualMachines/
la ubicación tradicional esperada en Mac OSX.
Otras opciones de instalación:
Algunos otros sabores de openJDK son:
Las versiones certificadas de Azul Systems Java Zulu de OpenJDK se pueden instalar siguiendo las instrucciones de su sitio .
Zulu® es una compilación certificada de OpenJDK que cumple totalmente con el estándar Java SE. Zulu es 100% de código abierto y se puede descargar libremente. Ahora los desarrolladores de Java, los administradores de sistemas y los usuarios finales pueden disfrutar de todos los beneficios del código abierto de Java con flexibilidad de implementación y control sobre el tiempo de actualización.
Las compilaciones de Amazon Correto OpenJDK tienen un paquete de instalación fácil de usar para la versión 8 o la versión 11 (están llegando otras versiones), y se instalan en el/Library/Java/JavaVirtualMachines/
directorioestándaren Mac OSX.
Amazon Corretto es una distribución sin costo, multiplataforma y lista para producción del Open Java Development Kit (OpenJDK). Corretto viene con soporte a largo plazo que incluirá mejoras de rendimiento y correcciones de seguridad. Amazon ejecuta Corretto internamente en miles de servicios de producción y Corretto está certificado como compatible con el estándar Java SE. Con Corretto, puede desarrollar y ejecutar aplicaciones Java en sistemas operativos populares, incluidos Linux, Windows y macOS.
¿Dónde está mi JDK?!?!
Para buscar ubicaciones de Java JDK instalados previamente instalados en las ubicaciones predeterminadas del sistema, use:
/usr/libexec/java_home -V
Máquinas virtuales Java coincidentes (6):
13, x86_64: "OpenJDK 13" /Library/Java/JavaVirtualMachines/openjdk-13.jdk/Contents/Home 12, x86_64: "OpenJDK 12" / Library / Java / JavaVirtualMachines / jdk-12 .jdk / Contents / Home
11, x86_64: "Java SE 11" /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
10.0.2, x86_64: "Java SE 10.0.2" / Library / Java / JavaVirtualMachines /jdk-10.0.2.jdk/Contents/Home
9, x86_64: "Java SE 9" /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home
1.8.0_144, x86_64: "Java SE 8" / Library /Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
También puede informar solo la ubicación de una versión específica de Java utilizando -v
. Por ejemplo para Java 13:
/usr/libexec/java_home -v 13
/Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home
Conocer la ubicación de los JDK instalados también es útil cuando se utilizan herramientas como JEnv, o al agregar una instalación local a SDKMAN, o al vincular un sistema JDK en Jabba, y necesita saber dónde encontrarlos.
Si necesita encontrar JDK's instalados por otras herramientas, verifique estas ubicaciones:
- SDKMAN se instala en
~/.sdkman/candidates/java/
- Jabba se instala en
~/.jabba/jdk
Cambio de versiones manualmente
El ejecutable de Java es un contenedor que usará cualquier JDK configurado JAVA_HOME
, por lo que puede cambiar eso para cambiar también qué JDK está en uso.
Por ejemplo, si instaló o descomprimió JDK 13 /Library/Java/JavaVirtualMachines/jdk-13.jdk
si es el número de versión más alto, ya debería ser el predeterminado, de lo contrario, simplemente puede configurar:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home
Y ahora cualquier ejecutable de Java que esté en la ruta verá esto y usará el JDK correcto.
El uso de la /usr/libexec/java_home
utilidad como se describió anteriormente le ayuda a crear alias o ejecutar comandos para cambiar las versiones de Java al identificar las ubicaciones de las diferentes instalaciones de JDK. Por ejemplo, creando alias de shell en su .profile
o .bash_profile
para cambiar JAVA_HOME
por usted:
export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
export JAVA_9_HOME=$(/usr/libexec/java_home -v9)
export JAVA_10_HOME=$(/usr/libexec/java_home -v10)
export JAVA_11_HOME=$(/usr/libexec/java_home -v11)
export JAVA_12_HOME=$(/usr/libexec/java_home -v12)
export JAVA_13_HOME=$(/usr/libexec/java_home -v13)
alias java8='export JAVA_HOME=$JAVA_8_HOME'
alias java9='export JAVA_HOME=$JAVA_9_HOME'
alias java10='export JAVA_HOME=$JAVA_10_HOME'
alias java11='export JAVA_HOME=$JAVA_11_HOME'
alias java12='export JAVA_HOME=$JAVA_12_HOME'
alias java13='export JAVA_HOME=$JAVA_13_HOME'
# default to Java 13
java13
Luego, para cambiar las versiones, solo use el alias.
java8
java -version
versión de Java "1.8.0_144"
¡Por supuesto, la configuración JAVA_HOME
manual también funciona!
Cambio de versiones con JEnv
JEnv espera que los JDK de Java ya existan en la máquina y puedan estar en cualquier ubicación. Por lo general, encontrará Java JDK instalados/Library/Java/JavaVirtualMachines/
. JEnv permite configurar la versión global de Java, una para el shell actual, y una versión local por directorio que es útil cuando algunos proyectos requieren versiones diferentes que otros.
Instale JEnv si aún no lo ha hecho, instrucciones en el sitio http://www.jenv.be/ para la instalación manual o el uso de Homebrew.
Agregue cualquier versión de Java a JEnv ( ajuste el directorio si colocó esto en otro lugar ):
jenv add /Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home
Establezca su versión global con este comando:
jenv global 13
También puede agregar otras versiones existentes utilizando jenv add
de manera similar y enumerar las que están disponibles. Por ejemplo Java 8:
jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
jenv versions
Vea los documentos de JEnv para más comandos. Ahora puede cambiar entre cualquier versión de Java (Oracle, OpenJDK, otra) en cualquier momento, ya sea para todo el sistema, para shells o para el directorio local.
Para ayudar a administrar JAVA_HOME
mientras usa JEnv, puede agregar el complemento de exportación para que lo haga por usted.
$ jenv enable-plugin export
You may restart your session to activate jenv export plugin echo export plugin activated
Es posible que el complemento de exportación no se ajuste JAVA_HOME
si ya está configurado, por lo que es posible que deba borrar esta variable en su perfil para que JEnv pueda administrarla.
También puede usar jenv exec <command> <parms...>
para ejecutar comandos individuales con JAVA_HOME
y PATH
establecer correctamente para ese comando, lo que podría incluir abrir otro shell.
Instalación y cambio de versiones con SDKMAN
SDKMAN es un poco diferente y maneja tanto la instalación como el cambio. SDKMAN también coloca los JDK instalados en su propio árbol de directorios, que normalmente es~/.sdkman/candidates/java
. SDKMAN permite configurar una versión predeterminada global y una versión específica para el shell actual.
Instale SDKMAN desde https://sdkman.io/install
Enumere las versiones de Java disponibles para asegurarse de conocer el ID de la versión
sdk list java
Instale una de esas versiones, por ejemplo, Java 13:
sdk install java 13.0.0-open
Haga 13 la versión predeterminada:
sdk default java 13.0.0-open
O cambie a 13 para la sesión:
sdk use java 13.0.0-open
Cuando enumere las versiones disponibles para la instalación utilizando el comando de lista, verá una amplia variedad de distribuciones de Java:
sdk list java
E instale versiones adicionales, como JDK 8:
sdk install java 8.0.181-oracle
SDKMAN puede trabajar con versiones existentes previamente instaladas. Simplemente haga una instalación local con su propia etiqueta de versión y la ubicación del JDK:
sdk install java my-local-13 /Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home
Y úsalo libremente:
sdk use java my-local-13
Hay más información disponible en la Guía de uso de SDKMAN junto con otros SDK que puede instalar y administrar.
SDKMAN administrará automáticamente su PATH
y JAVA_HOME
para usted a medida que cambie las versiones.
Instalación y cambio de versiones con Jabba
Jabba también maneja tanto la instalación como la conmutación. Jabba también coloca los JDK instalados en su propio árbol de directorios, que normalmente es~/.jabba/jdk
.
Instale Jabba siguiendo las instrucciones en la página de inicio .
Lista de JDK disponibles
jabba ls-remote
Instalar Java JDK 12
jabba install openjdk@1.12.0
Úselo:
jabba use openjdk@1.12.0
También puede alias de nombres de versiones, enlaces a JDK existentes ya instalados y encontrar una combinación de JDK interesantes como GraalVM, Adopt JDK, IBM JDK y más. La guía de uso completa también está disponible en la página de inicio.
Jabba gestionará automáticamente tu PATH
y JAVA_HOME
para ti a medida que cambies las versiones.