instalar - java para mac high sierra
Cómo instalar Java 8 en Mac (16)
Quiero hacer algo de programación con el último JavaFX, que requiere Java 8. Estoy usando IntelliJ 13 CE y Mac OS X 9 Mavericks. Ejecuté el instalador Java 8 de Oracle, y los archivos parecen que terminaron en
/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk
pero las versiones anteriores están en
/System/Library/Java/JavaFrameworks/jdk1.6....
No estoy seguro de por qué el instalador más reciente pone esto en /Library
lugar de /System/Library
(ni cuál es la diferencia). Pero /usr/libexec/java_home
no encuentra 1.8, por lo que todas las publicaciones que he encontrado sobre cómo configurar tu versión de Java actual no funcionan. He intentado agregar un enlace simbólico para que parezca que 1.8 está en la ruta /System/Library...
pero no ayuda. /usr/libexec/java_home -V
todavía solo muestra el antiguo java 1.6.
¡Irónicamente, el panel de control "Java" en Preferencias del sistema muestra solo java 1.8!
¿Por qué el instalador de Oracle no lo pone donde realmente va? ¿Y cómo puedo solucionar este problema?
JavaVirtualMachines
carpeta JavaVirtualMachines
ahora es correcta
¿Por qué el instalador de Oracle no lo pone donde realmente va? ¿Y cómo puedo solucionar este problema?
No es un problema.
La carpeta /Library/Java/JavaVirtualMachines/
es la nueva página de inicio de JVM s en macOS .
Para instalar una JVM, use un instalador, como se explica a continuación.
Para desinstalar, simplemente use el Finder para eliminar una JVM de esa carpeta. Se le solicitará la contraseña del administrador del sistema para completar la eliminación.
Java 9 y 10 y 11
En 2010, Apple se unió al proyecto OpenJDK , junto con Oracle , IBM , Red Hat , Azul y otros proveedores de Java. Cada miembro contribuye con el código fuente, las pruebas y los comentarios al código base de OpenJDK unificado.
Apple contribuyó la mayor parte de su código específico de Mac para su JVM. Ahora Apple ya no lanza su propia JVM específica para Mac. Ahora tiene su elección de proveedor de JVM, con compilaciones que provienen del código base de OpenJDK.
Encontrará el código fuente en: http://openjdk.java.net
Tenga en cuenta que en 2017, Oracle, JCP y OpenJDK adoptaron un nuevo plan de "tren de lanzamiento" rápido para que las versiones de Java programadas regularmente se entreguen de manera predecible.
Lea esta publicación del blog de 2018-07 Azul Systems para obtener muchos detalles sobre cómo eliminar la confusión de actualización de Java de Simon Ritter .
Vendedores
Para obtener una lista bastante exhaustiva de implementaciones de JVM pasadas y presentes, consulte esta página en Wikipedia .
Aquí hay tres fuentes actualmente activas que conozco.
Oracle JVM
Oracle proporciona instaladores JDK y JRE para múltiples plataformas, incluyendo macOS.
Su nuevo plan de negocios es proporcionar una implementación de Java con marca Oracle por una tarifa en producción, y sin costo para su uso en desarrollo / pruebas / demostración. El soporte para versiones anteriores requiere un programa de soporte pagado. Han declarado su intención de que su lanzamiento de marca esté en paridad con el lanzamiento de OpenJDK. Incluso han donado sus complementos comerciales, como la grabadora de vuelo, al proyecto OpenJDK.
Zulu & Zing de Azul
Azul ofrece una variedad de productos JVM.
- Su línea
Zulu
se basa directamente en OpenJDK, y está disponible sin costo alguno con los planes opcionales de soporte pagado. - Su línea
Zing
ofrece productos JVM comerciales mejorados con implementaciones técnicas alternativas, como un garbage-collector especializado.
Ambas líneas ofrecen instaladores para macOS.
Actualmente uso Zulu para Java 10.0.1 en macOS High Sierra con IntelliJ 2018.2 y Vaadin 8 . He descargado desde esta página . Por cierto, no encuentro ningún artículo relacionado con Java instalado en la aplicación de Preferencias del Sistema Apple.
AdoptOpenJDK.net
AdoptOpenJDK es un esfuerzo liderado por la comunidad para construir binarios de la fuente OpenJDK. Actualmente solo está disponible para Java 8, creado para usar el motor HotSpot o OpenJ9.
OpenJ9 de Eclipse
Otro proveedor en el futuro podría ser el proyecto OpenJ9 . Ahora patrocinado en la Fundación Eclipse, con tecnología y respaldo donado por IBM en 2017. No puedo discernir si pretenden distribuir para macOS o no.
Cómo instalar
Los instaladores proporcionados por Oracle o por Azul son completamente simples de operar. Simplemente ejecuta la aplicación de instalación en tu Mac. Aparece una ventana para indicar el progreso de la instalación.
Cuando termine, verifique su instalación de JVM mediante:
- Visitar la carpeta
/Library/Java/JavaVirtualMachines/
para ver un elemento para la nueva JVM. - Ejecute una consola como Terminal.app y escriba
java -version
para ver la marca y el número de versión de su JVM.
Después de verificar el éxito, desmonte la imagen .dmg en el Finder. Luego trash el archivo .dmg que descargaste.
A continuación los pasos funcionaron para mí.
1) Desinstalar todos los jdks
En la ventana de la Terminal Copie y pegue el siguiente comando:
sudo rm -fr /Library/Internet/ Plug-Ins/JavaAppletPlugin.plugin
sudo rm -fr /Library/PreferencePanes/JavaControlPanel.prefpane
2) Instalar APPLE jdk.
https://support.apple.com/kb/DL1572?locale=en_US
3) Descargue el último JDK de Oracle e instálelo, para mí era JDK 1.82
http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html
Eso es todo lo que funcionará como un encanto.
Acabo de hacer esto en mi MBP, y tuve que usar
$ brew tap caskroom/versions
$ brew cask install java8
con el fin de obtener java8 para instalar.
Ejecute estos comandos en mac High Sierra
brew update
brew tap caskroom/versions
brew cask install java8
y comprobar con el comando
java -version
La manera más fácil -
1) brew cask install java (No need to install cask separately it comes with brew)
2) java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
PD: ¿Qué es el barril de cerveza? Homebrew-Cask extiende Homebrew y resuelve la molestia de ejecutar un comando adicional: "Para instalar, arrastre este ícono ..." después de instalar una aplicación usando Homebrew .
La mejor manera es usar el gestor de paquetes Brew, pero el comando
brew install Caskroom/cask/java
falla con error:
brew cask install java8
Asi que usa
Error: No available formula with the name "java8"
¿Cómo encontré "caskroom / versions / java8": usando el comando brew search:
brew cask install caskroom/versions/java8
Lo más simple es descargar el archivo dmg del siguiente sitio e instalarlo haciendo doble clic
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
busque las JVM disponibles en el directorio de inicio
ls -al /Library/Java/JavaVirtualMachines
y actualice el .bash_profile con la versión relevante
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_XXX.jdk./Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
y finalmente
source ~/.bash_profile
No confíe en Oracle para instalar Java correctamente en su Mac.
Utilice Homebrew . esto instalará el último jdk:
brew cask install java
Si desea administrar varias versiones de Java en su Mac, considere usar jenv .
ACTUALIZACIÓN: Ahora que Java 8 ya no es la versión más actual, si desea que Java 8 lo instale de esta manera:
brew tap caskroom/versions
brew cask install java8
Para obtener una lista de todas las versiones anteriores de java: brew tap caskroom/versions
y luego use brew search java
.
Usamos brew cask ya que de lo contrario usaríamos el instalador de la GUI de Oracle que probablemente no instalará Java correctamente en su Mac. (Use la aplicación de instalación de brew cask para instalar aplicaciones GUI; use la aplicación de instalación brew .) Java no es una aplicación GUI; No debe requerir "barril" pero al menos Oracle es consistente.
Para El Capitán , Sierra y Sierra Alta.
Primero instale y actualice brevemente desde la Terminal:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew tap caskroom/versions
brew update
Java 8:
brew cask install java8
Java más reciente:
brew cask install java
Si tiene varias versiones de Java en su máquina y desea elegirlas dinámicamente en tiempo de ejecución, es decir, en mi caso, tengo dos versiones:
ls -la /Library/Java/JavaVirtualMachines
drwxr-xr-x 3 root wheel 96B Nov 16 2014 jdk1.7.0_71.jdk/
drwxr-xr-x 3 root wheel 96B Mar 1 2015 jdk1.8.0_31.jdk/
Puede cambiarlos modificando el contenido de /etc/profile
. Solo agregue (o modifique) las siguientes dos líneas al final del archivo:
export JAVA_HOME=YOUR_JAVA_PATH/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
En mi caso, debería ser como el siguiente si quiero usar:
Java 7:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
Java 8:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
Después de guardar el archivo, ejecute source /etc/profile
y debería funcionar. Aquí están los resultados cuando uso la primera y la segunda opción en consecuencia:
Java 7:
java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java 8:
java -version
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
El proceso es similar si su carpeta java se encuentra en diferentes ubicaciones.
También tuve el mismo problema. Pero después de poco éxito y prueba, pude resolver el problema.
Intenta eliminar 1.6 sdk by sudo rm y reinicia tu mac.
Descargue de nuevo el archivo .dmg. Lo más probable es que el instalador .dmg que descargaste esté dañado. Instalar de nuevo.
Ejecute el siguiente comando después de la instalación. Da ruta para jdk 8. / usr / libexec / java_home -v 1.8
También puedes correr y ver la carpeta jdk 8. Los archivos pueden estar ocultos. ls -al / Library / Java / JavaVirtualMachines /
Tengo aplicaciones que usan Java 7 y 8 y tengo que ir y venir todo el tiempo.
Yo uso este script escrito por Johan:
http://www.jayway.com/2014/01/15/how-to-switch-jdk-version-on-mac-os-x-maverick/
Ahora puede configurarlo en el inicio o llamar al script después.
Instala el JDK para Mac.
Java 7
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
Java 8
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Tengo el mismo problema que resolver, porque necesito instalar JDK8 para ejecutar Android SDK Manager (porque parece que no funciona bien con JDK9). Sin embargo, te cuento cómo resuelvo todos los problemas en una Mac (Sierra).
Primero, necesitas elaborar cerveza con barrica y jenv .
- Puede encontrar una guía útil aquí, Homebrew Cask Installation Guide . Recuerde tocar "caskroom / versiones" que se ejecuta en el terminal:
brew tap caskroom/versions
- Después de eso, instale jenv con:
brew install jenv
- Instale la versión que desee con cask
brew cask install java8
(ojava7
ojava
si desea instalar la última versión, jdk9) - El último paso es configurar qué versión ejecutar (y dejar que jenv administre sus
jenv versions
JAVA_HOME) para enumerar todas las versiones instaladas en su máquina y luego activar la que desea conjenv global [JDK_NAME_OF_LIST]
Puede encontrar otra información útil aquí en este Github Gist brew-java-and-jenv.md , en este blog Instale múltiples JDK en una Mac y en el jenv
Una opción que estoy empezando a gustar para ejecutar aplicaciones en mi computadora local es usar Docker. Simplemente puede ejecutar su aplicación dentro del contenedor oficial de JDK, lo que significa que no tiene que preocuparse por configurar todo en su máquina local (o preocuparse por ejecutar varias versiones diferentes de JDK para diferentes aplicaciones, etc.)
Aunque es posible que esto no le ayude con sus problemas de instalación actuales, es una solución que significa que puede evitar los problemas relacionados con intentar que Java funcione correctamente en su máquina de desarrollo.
Los beneficios son:
- No es necesario configurar ninguna versión de Java en su máquina local (simplemente ejecutará Java dentro de un contenedor que extraiga de Docker Hub)
- Muy fácil de cambiar a diferentes versiones de Java simplemente cambiando la etiqueta en el contenedor.
- Las dependencias del proyecto se instalan dentro del contenedor, por lo que si arruinas la configuración, simplemente puedes atacar el contenedor y comenzar de nuevo.
Un ejemplo muy simple:
Crear un Dockerfile
:
FROM java:8
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
- Aquí estamos especificando el contenedor de Java que ejecuta la versión 8 del SDK (
java:8
- para usar Java 7, simplemente puede especificar:java:7
) - Estamos mapeando el directorio local con el directorio:
/usr/src/myapp
dentro del contenedor
Crea un archivo docker-compose.yml
:
version: "2"
services:
java:
build: .
volumes:
- .:/usr/src/myapp
Ahora, supongamos que tenemos este archivo Java:
HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}
Así que tenemos la siguiente estructura de archivos:
.
|_ Dockerfile
|_ docker-compose.yml
|_ HelloWorld.java
Puedes hacer varias cosas de Java como:
compilar:
docker-compose run --rm java javac HelloWorld.java
- Debe tener en cuenta que HelloWorld.class aparece en su directorio actual (esto se debe a que hemos asignado el directorio actual a la ubicación dentro del contenedor donde existe nuestro código).
correr:
docker-compose run --rm java java HelloWorld
- Nota: la primera vez que lo ejecute, buscará la imagen, etc. Esto tomará un tiempo, solo sucede la primera vez.
-
docker-compose run
- ejecuta un comando desde dentro del contenedor -
-rm
le dice a la-rm
acoplable que elimine el contenedor una vez que el comando termina de ejecutarse -
java
es el nombre del servicio / contenedor (de nuestro archivo docker-compose) contra el cual se ejecutará este comando - El resto de la línea es el comando para ejecutarse dentro del contenedor.
Esta es una manera muy buena de lidiar con la ejecución de diferentes versiones de Java para diferentes aplicaciones sin hacer un desastre completo de su configuración local :).
Aquí hay un ejemplo un poco más complejo que tiene Maven y una aplicación Spring simple.
Renuncia:
- Realmente no he intentado esto dentro de un IDE como IntelliJ, así que no estoy completamente seguro de cómo funcionaría ese aspecto de las cosas. Aunque parece que el soporte de la ventana acoplable viene
- Aquí hay un ejemplo significativamente más complejo que ejecuta Microservices con Spring Boot, Zuul y Docker
Utilizando brew
brew cask search java8
instalar barril instalar caskroom / versiones / java8