¿Cómo uso JDK 7 en Mac OSX?

107

Me gustaría usar la API WatchService como se menciona en este enlace: http://download.oracle.com/javase/tutorial/essential/io/notification.html

Después de leer, descubrí que WatchService es parte de la clase NIO que está programada para JDK 7. Entonces, está en forma beta. Está bien.

http://jdk7.java.net/download.html tiene el JDK que descargué y extraje. Tengo un montón de carpetas. No sé qué hacer con ellos.

Luego, leí un poco más y descubrí que un buen grupo de personas creó JDK 7 como un binario para que alguien como yo pueda instalarlo fácilmente. Se llama Open JDK: http://code.google.com/p/openjdk-osx-build/

Entonces, descargué el archivo .dmg y lo instalé. Luego abro "Preferencias de Java" y veo que OpenJDK7 está disponible.

Entonces, ahora siento que puedo comenzar a probar la API WatchService. Desde el tutorial en el primer enlace, el autor dio un archivo .java para probarlo primero y asegurarse de que se esté ejecutando. Aquí está el enlace al archivo: http://download.oracle.com/javase/tutorial/essential/io/examples/WatchDir.java

Entonces, inicio Eclipse (en realidad uso STS) y creo un nuevo proyecto Java y elijo JaveSE-1.7 en "usar un entorno de ejecución JRE:". Debajo de la carpeta src, copio y pegué el archivo WatchDir.java.

Y todavía veo toneladas de líneas rojas onduladas. Todos los "import.java.nio. *" Están en rojo y no puedo ejecutarlo como una aplicación Java.

¿Que necesito hacer?

okysabeni
fuente
¿Puedes ejecutarlo y compilarlo en la consola?
dmeister
¿Quieres decir: $ javac WatchDir.java y luego $ Java WatchDir? Probaré eso. ¡Gracias! Aunque me encantaría tenerlo disponible en Eclipse IDE.
okysabeni
1
A partir de hoy hay un lanzamiento oficial de Oracle - Java SE 7u4
mmmmmm
Asegúrese de estar utilizando Eclipse de 64 bits. No tuve suerte al ejecutar uno de 32 bits en 1.7 jvm con ninguna opción.
tuxSlayer
Actualización: Java 7 está ahora al final de su vida útil . Para pasar a las versiones de soporte a largo plazo (LTS) de Java, consulte: ¿Cómo instalar Java 8 en Mac y obtener Java 11 para macOS? .
Basil Bourque

Respuestas:

61

Oracle ha lanzado JDK 7 para OS X .

Mukund
fuente
Actualizaré la respuesta con la información más reciente. Por favor avíseme si esta no es la respuesta correcta. Gracias.
okysabeni
@Yko: mire BasilBourque para obtener la información más completa (o el mío para la primera versión 4 de Oracle JDK7)
mmmmmm
12
Tenga en cuenta que para hacer que las aplicaciones usen Java 1.7 de Oracle en favor de Java 1.6 de Apple, tuve que ejecutar /Library/Java/JavaVirtualMachines/1.7.0.jdky arrastrar "Java SE 7" a la parte superior de la lista en la pestaña "General". Esto también señalará javacla versión de Java 1.7 al ejecutar el terminal.
sschuberth
2
El JDK7 de Oracle no funciona en Snow Leopard. Dice que solo es compatible con Lion.
Sanghyun Lee
@Sangdol: Sí, la implementación de Java de Oracle solo se ejecuta en Lion y versiones posteriores. Como se señaló en mi respuesta a esta pregunta.
Basil Bourque
88

Así es como conseguí que 1.7 funcionara con Eclipse. Espero que ayude.

  1. Descargué el último JDK universal OpenJDK 1.7 (32/64 bits) de la rama Mac OS / X de http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
  2. copió el jdk en / Library / Java / JavaVirtualMachines / junto al predeterminado 1.6.0
  3. En Eclipse> Preferencias> Java> JRE instalados, agrega uno nuevo, de tipo MacOS X VM, y configura la casa como /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home y nombre Java SE 7 (OpenJDK)
  4. Haga clic en Finalizar
  5. Establecer el JRE agregado como predeterminado

eso debería ser :)

tamaño vectorial
fuente
gracias mi elcipse completamente colgado .. así que intenté usar SDK 1.7 ¡funcionó perfectamente! : =)
cV2
1
Ese proyecto (openjdk-osx-build) se cerró y ya no ofrece descargas.
aroth
el paso 2 puede ser simplemente: ejecute jdk-7u40-macosx-x64.dmg descargado y automáticamente agregará el archivo a la ruta
Michal
Al agregar un JRE instalado a Eclipse, Eclipse también puede "buscar" los JRE instalados. Así es como encontré mi instalación existente de 1.7 JDK.
jvriesem
Tenga en cuenta que el instalador de oracle jdk 1.7 colocará la máquina virtual en / Library / Java / JavaVirtualMachines / por usted (marzo de 2014)
Chris Thorne
55

Java 9, 10, 11

Hace años, Apple se unió a OpenJDK proyecto , transfiriendo su código JVM específico de macOS, anteriormente propietario, como código abierto gratuito. Apple dejó de distribuir su propia JVM / JDK de marca, confiando en las versiones de marca de Oracle para incluir una versión para macOS.

Oracle ha anunciado recientemente su intención de llevar su versión de JVM con la marca Oracle a la paridad de características con el proyecto OpenJDK, con prácticamente la misma base de código. La compañía incluso donó sus herramientas previamente comerciales, Flight Recorder & Mission Control , al proyecto OpenJDK. Esto es parte del cambio a un nuevo plan de "tren de lanzamiento" rápido para el control de versiones programado de manera predecible de Java y OpenJDK. En particular, ahora se acortan los períodos para las actualizaciones públicas gratuitas. Vea este anuncio de 2017-09 y esta publicación de Mark Reinhold .

Como resultado de todo esto, los usuarios de macOS de Java tienen una opción de proveedores para una implementación de Java. En este punto, al menos tres fuentes se basan en OpenJDK para macOS:

Mientras tanto, IBM donó código para una JVM a la Fundación Eclipse, ahora alojada en el proyecto OpenJ9 . Me pregunto si también podrían admitir una versión de macOS, aunque es demasiado pronto para saberlo.

Personalmente, actualmente estoy usando la versión Zulu de Java 10.0.1 de Azul en macOS High Sierra con éxito con IntelliJ 2018.2 para producir aplicaciones web respaldadas por Java con Vaadin .

Instalación / Remoción

Tanto Oracle como Azul proporcionan instaladores completamente fáciles de usar para instalar JVM / JDK en su Mac. Verifique su instalación usando Terminal.app (o equivalente) para escribir y ejecutar:

java -version

Encontrará las instalaciones de Java en esta carpeta en el nivel raíz de su unidad (no en su carpeta de inicio):

/ Biblioteca / Java / JavaVirtualMachines

Cada versión de cada proveedor se encuentra allí, en una carpeta anidada etiquetada. Puede eliminar cualquier instalación simplemente eliminando la carpeta anidada para esa versión y proporcionando la contraseña del sistema cuando se le solicite.

Java 8

Puede descargar Java Development Kit (JDK) para Java 8 para las versiones compatibles de Mac OS X:

  • León de montaña (10.8.3+)
  • Mavericks (10,9)
  • Yosemite (10,10)
  • El Capitán (10.11)

Cada versión de JVM que instale se puede encontrar aquí:

/Library/Java/JavaVirtualMachines

Para obtener más instrucciones y preguntas frecuentes, consulte esta Guía de Oracle .

Java 7

Para cada lanzamiento de Java 7 desde la Actualización 4, se ha preparado una versión para Mac junto con las otras plataformas. Se ejecuta en Mac con hardware de 64 bits en Lion (10.7.3+), Mountain Lion (10.8.3+) y Mavericks (10.9.x).

Oracle anunció el lanzamiento oficial del JDK para Java SE 7 Update 4 en Mac OS X (Lion), a partir del 26 de abril de 2012. No más necesidad de los trucos discutidos en esta página.

La instalación es simple según estas instrucciones :

  1. Descárguelo desde el lugar habitual en el sitio web de Oracle.
  2. Monte el DMG.
  3. Ejecute el instalador.

Esta versión tiene algunas limitaciones, entre las que destaca la falta de compatibilidad con Java Web Start y el complemento Java para navegadores web. Se espera ese apoyo a finales de este año.

Después de la instalación, lea el archivo Léame de JDK para Mac. Lo más importante es que si desea que Java 7 sea el predeterminado, arrástrelo a la parte superior de la lista en la aplicación Preferencias de Java que se encuentra en su carpeta Utilidades.

Mac OS X admite fácilmente múltiples JVM simultáneamente. Cada uno se encuentra ahora aquí:

/Library/Java/JavaVirtualMachines

Felicitaciones a los equipos de Apple y Oracle por su logro. Este geek se emociona al ver que Mac OS X aparece como " Configuración de sistema certificada ".

Consejo: Para iniciar Eclipse en una Mac con solo Java 7 instalado, abra el archivo de alias llamado eclipse en lugar del archivo llamado Eclipse.app .

Java 6

Apple continúa proporcionando una implementación actualizada de Java 6 para todas las versiones de Mac OS X hasta Mountain Lion.

Si hace algo que requiere Java, como escribir "java -version" en Terminal.app, aparece un cuadro de diálogo que le ofrece la posibilidad de instalar Java. Si acepta, la instalación se realiza automáticamente de forma similar a otras "Actualizaciones de software" de Apple.

Encontrará Java instalado en esta ubicación, diferente a Java 7 y 8:

/System/Library/Java/JavaVirtualMachines

Java 6 ha llegado al final de su vida útil con Oracle a partir de 2013-02 (a menos que tenga un acuerdo de soporte comercial con Oracle). Por lo tanto, debería pasar a Java 7 u 8.

Prueba de nueva versión

En Terminal.app, escriba java -versionpara verificar qué versión es la predeterminada actual.

Eliminar versiones anteriores

Después de instalar una versión nueva, es posible que desee visitar la carpeta descrita anteriormente para eliminar las versiones anteriores. Mueva la carpeta a la Papelera y proporcione su contraseña del sistema para completar el movimiento.


Por cierto, Apple proporciona una lista de correo para los problemas técnicos de los desarrolladores relacionados con Java en OS X.

Albahaca Bourque
fuente
Gracias, esto funcionó muy bien para mí. También es necesario cambiarlo en las preferencias.
@Tony: Sí, cambiar sus preferencias se menciona en el cuarto párrafo.
Basil Bourque
No funciona. Ejecuto el instalador e informa "Éxito", pero parece que nada se instala realmente. /System/Library/Java/JavaVirtualMachinessolo contiene Java 6 JDK.
aroth
4
@aroth - (a) Mira adentro /Library/Java/JavaVirtualMachines(no /System). (b) ¿Leyó los documentos de instalación de Oracle, el ReadMey la configuración Preferencescomo se describe en mi respuesta anterior?
Basil Bourque
1
Con Java 7 r21, veo /Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/. Ahora se accede al Panel de control de Java a través de Preferencias del sistema (OSX 10.8.3)
Sofi Software LLC
17

Una forma fácil de instalar Java 7 en una Mac es mediante Homebrew , gracias al complemento Homebrew Cask (que ahora está instalado de forma predeterminada).

Ejecute este comando para instalar Java 7:

brew cask install caskroom/versions/java7
Andrés
fuente
"Error: no hay barril disponible para caskroom / versiones / java7"
jrochkind
@jrochkind ¿Quizás tu no caskroom/versionsestá actualizado? Definitivamente está aquí: github.com/caskroom/homebrew-versions/blob/master/Casks/…
Andrew
@jrochkind Intente ejecutar brew tap caskroom/versionsantes de ejecutar el comando de instalación
Andrew
@jrochkind Si eso no funciona, consulte la documentación del barril o presente un problema: github.com/caskroom/homebrew-cask
Andrew
13

Conseguir barril

brew tap caskroom/cask

Instale java7:

brew tap caskroom/versions
brew cask install java7

(Tuve dificultades para encontrar el enlace de descarga de java7 en el sitio web de Oracle, ya que solo están "recomendando" java8)

EDITAR enero de 2018 (como señaló Ankur ):

Utilice barrica zulu7 . Zulu es una compilación certificada de OpenJDK producida por Azul Systems que debería estar disponible durante mucho tiempo (incluso ofrecen compilaciones JDK6 todavía).

brew cask install caskroom/versions/zulu7
abe312
fuente
La respuesta aceptada para esta pregunta está desactualizada. Esta parece ser la mejor manera de instalar Java 7 en estos días.
Tim Dean
este barril fue retirado (ver: github.com/caskroom/homebrew-versions/pull/3914 ). la alternativa sugerida es usar zulu7.
Ankur
9

Sé que algunos pueden querer golpearme por volver a abrir la publicación anterior, pero si lo sientes, hazlo, solo espero que esto pueda ayudar a alguien más a intentar configurar JDK 7 en Mac OS (usando IntelliJ).

Lo que hice para que esto funcione en mi máquina es:

  • siguió las instrucciones en Oracle JDK7 Mac OS X Port para la instalación general
  • en IntelliJ abra / cree un nuevo proyecto para que pueda agregar un nuevo SDK (Archivo> Estructura del proyecto)
  • seleccione Configuración de plataforma> SDK, presione el signo "+" (más) para agregar un nuevo SDK
  • seleccione JSDK y vaya a / Library / Java / JavaVirtualMachines / JDK 1.7.0 Developer Preview.jdk / Contents / Home. No lo confunda con / Users / YOUR_USERNAME / Library / Java / . Esto vinculará 4 archivos JAR del directorio "lib" (dt.jar, jconsole.jar, sa-jdi.jar y tools.jar)
  • también necesitará agregar archivos JAR de / Library / Java / JavaVirtualMachines / JDK 1.7.0 Developer Preview.jdk / Contents / Home / jre / lib (charsets.jar, jce.jar, JObjC.jar, jsse.jar, management-agent .jar, resources.jar y rt.jar)
peter_budo
fuente
6

Es posible que aún necesite agregar el JDK a Eclipse (STS). El hecho de que el JDK esté en el sistema no significa que Eclipse sepa dónde encontrarlo.

Vaya a Preferencias> Java> JRE instalados

Si no hay una entrada para el 1.7 JDK, agréguela. Tendrá que señalar a Eclipse donde instaló su 1.7 JDK.

Si Eclipse no puede encontrar un JRE que sea compatible con 1.7, supongo que solo usa su JRE predeterminado, y probablemente todavía apunta a Java 1.6, lo que estaría causando sus líneas onduladas rojas.

Jon Quarfoth
fuente
¡Buena llamada! Pero necesito un poco más de orientación. Voy a JRE instalados -> Agregar y apunto a ... / jdk1.7.0 / jre y encontré un montón de archivos JAR. Hago clic en Finalizar. Felizmente intenta compilar pero ahora dice ... / jdk1.7.0 / jre / bin / java: no se puede ejecutar el archivo binario. Qué significa eso?
okysabeni
No estoy realmente seguro. Puede intentar apuntar eclipse al directorio base jdk en lugar del directorio jre. Creo que así es como lo hago habitualmente en Windows, aunque nunca he desactivado el JDK predeterminado en mi Mac. Si eso no funciona, puede intentar instalar una distribución diferente de JDK 7; había algunas diferentes disponibles en el sitio openjdk-osx-build, ¿tal vez eligió una que no es compatible con su sistema?
Jon Quarfoth
Lo he intentado. Me da el error de "El destino no es una raíz de JDK. No se encontró la biblioteca del sistema"
okysabeni
6

después de instalar 1.7jdk de Oracle, cambié mis scripts de bash para agregar:

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

y luego corriendo java -versionmostró la versión correcta.

Dustin Getz
fuente
1

Las instrucciones de peter_budo funcionaron perfectamente. Tuve que agregar los frascos en / Library / Java / JavaVirtualMachines / JDK 1.7.0 Developer Preview.jdk / Contents / Home / jre / lib / a mis bibliotecas de proyectos IntelliJ. Ahora funciona como un encanto! Tenga en cuenta que no necesitaba que mi IDE funcionara por debajo de 1.7; más bien, solo necesitaba poder compilar y ejecutar con 1.7. Lo más probable es que continúe usando el JRE de Apple para ejecutar el IDE, ya que probablemente sea más estable con respecto a las rutinas de gráficos (Swing, AWT). Al igual que el OP, estaba realmente interesado en probar la nueva API NIO2. Se ve bien hasta ahora. Gracias, Peter.

usuario1092781
fuente
1

Lo que funcionó para mí en Lion fue instalar el JDK7_u17 de Oracle, luego editar ~ / .bash_profile para incluir: export JAVA_HOME = / Library / Java / JavaVirtualMachines / jdk1.7.0_13.jdk / Contents / Home

usuario1015892
fuente
0

Actualicé a Yosemite y Android Studio no limpiaba mis proyectos ni los ejecutaba en un dispositivo virtual o real debido al siguiente error:

Failed to complete Gradle execution.Cause:Supplied javaHome is not a valid folder. You supplied: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Después de algunas investigaciones y solución de problemas, descubrí que el archivo JDK al que se apuntaba en "/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home" no estaba allí; faltaba todo "JavaVirtualMachines / 1.6.0.jdk / Contents / Home" en "/ System / Library / Java". Entonces, copié "JavaVirtualMachines / 1.6.0.jdk / Contents / Home" de "/ Library / Java /" a "/ System / Library / Java /" ¡y cha ching! Estaba de vuelta en el negocio.

brasas de fuego
fuente
0

Ahora, use el comando

Actualización 2020: 04

Para instalar Java7 con homebrew run:

brew tap homebrew/cask-versions
brew cask install java7

Espero que esto ayude.

superup
fuente