Quiero instalar OpenJDK Java en Mac OSX y hacer que funcione junto con otros JDK ya que es una versión más nueva. Actualmente, descargué el tar.gz y lo coloqué en mi camino, pero eso es difícil de mantener.
La única otra instalación que encontré que hace más cosas automáticamente es la instalación a través de Homebrew cask. Parece solo la versión actual también:
brew cask info java
Muestra:
java: 13,33: 5b8a42f3905b406298b72d750b6919f6
https://openjdk.java.net/
Entonces puedo instalarlo desde allí, pero ¿entonces qué? ¿Estoy atascado solo con la nueva versión?

Respuestas:
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:
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):
y para las versiones de AdoptOpenJDK , agregue ese toque:
Estos barriles cambian sus versiones de Java a menudo, y puede haber otros toques con versiones adicionales de Java.
Busque versiones instalables:
o para las versiones de AdoptOpenJDK:
Verifique los detalles de la versión que se instalará:
o para la versión AdoptOpenJDK:
Instalar una versión específica del JDK como
java11,adoptopenjdk8, o simplementejavaoadoptopenjdkpara la corriente. Por ejemplo:También puede usar la ruta de acceso completa a versiones anteriores:
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 .
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.¿Dónde está mi JDK?!?!
Para buscar ubicaciones de Java JDK instalados previamente instalados en las ubicaciones predeterminadas del sistema, use:
También puede informar solo la ubicación de una versión específica de Java utilizando
-v. Por ejemplo para Java 13: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/candidates/java/~/.jabba/jdkCambio 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.jdksi es el número de versión más alto, ya debería ser el predeterminado, de lo contrario, simplemente puede configurar: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_homeutilidad 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.profileo.bash_profilepara cambiarJAVA_HOMEpor usted:Luego, para cambiar las versiones, solo use el alias.
¡Por supuesto, la configuración
JAVA_HOMEmanual 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 ):
Establezca su versión global con este comando:
También puede agregar otras versiones existentes utilizando
jenv addde manera similar y enumerar las que están disponibles. Por ejemplo Java 8: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_HOMEmientras usa JEnv, puede agregar el complemento de exportación para que lo haga por usted.Es posible que el complemento de exportación no se ajuste
JAVA_HOMEsi 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 conJAVA_HOMEyPATHestablecer 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
Instale una de esas versiones, por ejemplo, Java 13:
Haga 13 la versión predeterminada:
O cambie a 13 para la sesión:
Cuando enumere las versiones disponibles para la instalación utilizando el comando de lista, verá una amplia variedad de distribuciones de Java:
E instale versiones adicionales, como JDK 8:
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:
Y úsalo libremente:
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
PATHyJAVA_HOMEpara 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
Instalar Java JDK 12
Úselo:
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
PATHyJAVA_HOMEpara ti a medida que cambies las versiones.fuente
JAVA_HOMEpara seleccionar una versión específica, algo así comoexport JAVA_HOME=$(/usr/libexec/java_home -v <version>)en su.bash_profileJAVA_HOMEconfigurado manualmente y lo administran ellos mismos. JEnv seguramente no lo ajustará si se configuró previamente, no estoy seguro acerca de Jabba y SDKMAN, pero normalmente administrarán esa configuración. Solo una instalación manual sin cambio de versión debería establecer este valor directamente.Así es como lo hice.
Paso 1: Instalar Java 11
Puede descargar Java 11 dmg para mac desde aquí: https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html
Paso 2: Después de la instalación de Java 11. Confirme la instalación de todas las versiones. Escriba el siguiente comando en su terminal.
Paso 3: Editar .bash_profile
Paso 4: Agregue 11.0.1 como predeterminado. (Agregue la siguiente línea al archivo bash_profile).
para cambiar a cualquier versión
Ahora presione CTRL + X para salir del bash. Presione 'Y' para guardar los cambios.
Paso 5: recarga bash_profile
Paso 6: Confirme la versión actual de Java
fuente
Cambio manual de la versión predeterminada del sistema sin herramientas de terceros:
Como se detalla en esta respuesta anterior , en macOS
/usr/bin/javaes una herramienta de envoltura que usará la versión de Java señalada porJAVA_HOMEo si esa variable no está configurada, buscará las instalaciones de Java/Library/Java/JavaVirtualMachines/y usará la que tenga la versión más alta. Determina las versiones mirandoContents/Info.plistdebajo de cada paquete.Armado con este conocimiento puedes:
Info.plistde las versiones que no desea usar como predeterminadas (ese archivo no es utilizado por el tiempo de ejecución de Java en sí).$JAVA_HOMEAcabo de verificar que esto sigue siendo cierto con OpenJDK y Mojave.
En un sistema nuevo, no hay instalada una versión de Java:
Cancele esto, descargue OpenJDK 11 y 12ea en https://jdk.java.net ; instalar OpenJDK11:
System java es ahora 11:
Instale OpenJDK12 (acceso anticipado en este momento):
El sistema java ahora es 12:
Ahora "ocultemos" OpenJDK 12 del sistema java wrapper:
System java vuelve a 11:
Y aún puede usar la versión 12 puntualmente configurando manualmente
JAVA_HOME:fuente
Si tiene varias versiones instaladas en su máquina, agregue lo siguiente en bash profile:
Y agregue los siguientes alias:
Y puede cambiar a la versión requerida utilizando el alias:
En terminal:
~ >> java7 export JAVA_HOME=$JAVA_7_HOMEfuente
¡Otra alternativa es usar SDKMAN ! Ver https://wimdeblauwe.wordpress.com/2018/09/26/switching-between-jdk-8-and-11-using-sdkman/
Primero instale SDKMAN: https://sdkman.io/install y luego ...
sdk install java 8.0.181-oraclesdk install java 11.0.0-openPara cambiar:
sdk use java 8.0.181-oraclesdk use java 11.0.0-openPara establecer un valor predeterminado:
sdk default java 8.0.181-oraclesdk default java 11.0.0-openfuente
Con Homebrew y Jenv:
Supuesto: máquina Mac y ya has instalado homebrew.
Instalar barril:
Para instalar la última versión de Java:
Para instalar Java 8:
Para instalar Java 9:
Si desea instalar / administrar varias versiones, puede usar 'jenv':
Instalar y configurar jenv:
Agregue el java instalado a jenv:
Para ver todos los java instalados:
El comando anterior le dará la lista de Java instalado:
Configure la versión de Java que desea usar:
fuente
Error: caskroom/cask was moved. Tap homebrew/cask-cask instead, entoncesfatal: repository 'https://github.com/Homebrew/homebrew-cask-cask/' not foundEn mi humilde opinión, no es necesario instalar todas las aplicaciones / paquetes adicionales.
Verifique las versiones disponibles con el comando:
Ahora, si desea elegir Azul JDK 8 en la lista anterior, y NO Java SE 8 de Oracle, invoque el comando de la siguiente manera:
Para elegir Java SE 8 de Oracle, invocaría el comando:
Como puede ver, el número de versión proporcionado será el conjunto único de cadenas: 1.8.0_181 vs 1.8.0_151
fuente
1.8.0_181-zulu-8.31.0.1? o es una coincidencia parcial?JAVA_HOME. El cambio manual usando estos comandos está cubierto en mi otra respuesta.