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 simplementejava
oadoptopenjdk
para 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/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: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 cambiarJAVA_HOME
por usted:Luego, para cambiar las versiones, solo use el alias.
¡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 ):
Establezca su versión global con este comando:
También puede agregar otras versiones existentes utilizando
jenv add
de 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_HOME
mientras 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_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 conJAVA_HOME
yPATH
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
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
PATH
yJAVA_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
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
PATH
yJAVA_HOME
para ti a medida que cambies las versiones.fuente
JAVA_HOME
para seleccionar una versión específica, algo así comoexport JAVA_HOME=$(/usr/libexec/java_home -v <version>)
en su.bash_profile
JAVA_HOME
configurado 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/java
es una herramienta de envoltura que usará la versión de Java señalada porJAVA_HOME
o 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.plist
debajo de cada paquete.Armado con este conocimiento puedes:
Info.plist
de las versiones que no desea usar como predeterminadas (ese archivo no es utilizado por el tiempo de ejecución de Java en sí).$JAVA_HOME
Acabo 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_HOME
fuente
¡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-oracle
sdk install java 11.0.0-open
Para cambiar:
sdk use java 8.0.181-oracle
sdk use java 11.0.0-open
Para establecer un valor predeterminado:
sdk default java 8.0.181-oracle
sdk default java 11.0.0-open
fuente
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 found
En 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.