2012-01-15 21 views
8

La aplicación de preferencias de Java en mi estación de trabajo OS X Lion indica que tengo instalado Java SE 6 v1.6.0_29-b11-402 (versiones de 32 y 64 bits). Desafortunadamente, necesito funciones adicionales que solo están disponibles en Enterprise Edition.Instalar Java EE 6 en OS X Lion

Un comentario de 'Jesper' en 'How install a specific jdk on Mac OS X?' sugiere que necesito usar la Java suministrada por Apple, en lugar de la de Oracle/Sun. Por desgracia, no parece que Apple ofrece una edición Enterprise de Java 6.

Esto me lleva a formular una serie de preguntas:

  1. ¿Me he perdido algo? ¿Apple ofrece un EE de Java 6?
  2. Si 1 es verdadero, ¿cómo lo obtengo? ¿Se puede instalar 'lado a lado' con Java SE 6?
  3. Si 1 es falso, ¿se puede usar una versión de Oracle/Sun? ¿Hay una ubicación de instalación recomendada? Supongo que no se recomienda la carpeta /System/Library/Frameworks/JavaVM.framework/Versions/.
  4. La versión de Oracle/Sun parece incluir muchos extras (por ejemplo, Glassfish) que preferiría no instalar. ¿Puedo instalar el núcleo SDK sin los extras? ¿Tomcat 7 funcionará como alternativa a Glassfish?

** editar **

Esta pregunta es el resultado de otra pregunta que he publicado: RESTful web service: java.lang.NullPointerException service.AbstractFacade.findAll. Parece que este error en particular es el resultado de una anotación faltante (@Stateless). Esta anotación está 'contenida' en el espacio de nombres javax.ejb. *, Que está contenido en un archivo .JAR que no está en mi estación de trabajo.

Esto me llevó a concluir que necesitaba la 'Edición Enterprise' de Java 6 (que tendría el archivo .JAR faltante y otros archivos dependientes). Supongo que si hubiera una manera de determinar qué archivo .JAR falta (Netbeans 7 no parece ayudar con esto), probablemente podría simplemente agregarlo al proyecto y omitir los problemas de EE.

Respuesta

17

No existe un tiempo de ejecución especial llamado Enterprise Edition de Java para cualquier plataforma.

Hay Java SE y simplemente hay algunas interfaces que implementa un contenedor de Enterprise Edition.

Sun confundió el mercado con la convención de nomenclatura hace años cuando crearon J2EE. Nunca fue una versión separada de Java, solo algunas API añadidas que, si un servidor las implementaba y aprobaba alguna certificación, podían llamarse a sí mismas un contenedor J2EE.

confundieron aún más el mercado cuando comenzó a llamarlo Java EE 6.

Si está desarrollando contra estas API todo lo que necesita es los archivos .jar que contienen estas declaraciones de interfaz. Puede descargar estos archivos .jar de API que solían llamarse J2EE. Pero son bastante inútiles por sí mismos.

Pero dudo que quiera escribir un servidor Java EE, desea usar uno. Si desea usar un servidor, entonces necesita descargar un servidor compatible con Java EE y usar los archivos .jar que proporciona.

Cada IDE que valga la pena usar incluye estos de alguna forma, por lo general definiendo un Servidor contra el que desplegará. Tomcat no es un contenedor completamente EE.Es un contenedor Servlet, que es un subconjunto de las especificaciones EE completas.

As of OSX Lion, Apple doesn't supply a JDK anymore, es solo el Oracle, que al parecer ya adquirió con éxito.

+0

No entiendo. Si no existe una Edición Enterprise, ¿por qué Oracle todavía usa esta terminología? http://www.oracle.com/technetwork/java/javaee/documentation/javaee6sdku3-relnotes-444316.html – craig

+4

No es como descargar "Java EE" de algún lado. Es como descargar alguna implementación (GlassFish, JBoss AS, WebSphere, WebLogic, etc.) y desarrollar este servidor. – Xorty

+0

En realidad, no es * que * diferente para Java SE. Tampoco descargaría Java SE, pero descargaría una implementación. Solo la implementación de Oracle obtuvo tanta participación de mercado que se convirtió en más o menos sinónimo de Java SE, pero también había una JRockit, una MJR, una versión de Microsoft (¡la que en algún momento fue la más famosa!) Y todavía hay una versión de IBM, GCJ (que en realidad nunca funciona) y algunas otras implementaciones oscuras. OpenJDK es la alternativa más famosa, aunque la versión de Oracle ahora se basa directamente en esto, por lo que tampoco es realmente diferente. –

0

Hay una descarga de Java EE. http://www.oracle.com/technetwork/java/javaee/downloads/index.html Por sí solo, no es particularmente útil a menos que intente desarrollar una aplicación que se ejecute en varios contenedores.

Lo que normalmente querrá hacer es descargar un contenedor y desarrollarlo con eso. p.ej. Glassfish (disponible en el mismo enlace de arriba). Esta tarea puede hacerse más fácil con el apoyo de un IDE como Netbeans. Puede descargar una versión de Netbeans que ya incluye Glassfish y las API de Java EE y simplemente comenzar a trabajar. Otras combinaciones de IDE/contenedor son posibles, generalmente hay algún tipo de complemento disponible.

El Java 6 JDK/JRE para OSX sigue siendo de Apple. Sin embargo, hicieron la transición del código a Oracle, y la versión OSX de JDK 7 está cerca del estado de lanzamiento, y puede ser lo suficientemente madura para sus propósitos. Mi mejor suposición es que lo es.

+0

Desde Lion, que está claramente en el título, [Apple ya no es compatible directamente con un JDK, es provisto, desarrollado y mantenido por Oracle.] (Http://stackoverflow.com/a/6765946/177800) –

+0

Si lea el artículo vinculado por la pregunta de desbordamiento de pila que enlaza, notará que se refiere a Openjdk 7. Compruebe la primera respuesta a la siguiente pregunta sobre cómo descargar JDK6 para Lion http://stackoverflow.com/questions/6614380/jdk-on-osx-10-7-lion – Bill

+0

Si lees el ** ANSWER ** al que me he vinculado, se trata de cómo se está entregando Java en Lion. –

5

Java EE 6 es una especificación, con algunas API acompañadas representadas como interfaces. Java EE 6 en sí mismo no es una implementación de esas API. Si desea utilizar las API de Java EE 6, deberá hacer uso de un servidor de aplicaciones Java EE compatible. Glassfish es la implementación de referencia de Java EE 6, sin embargo, hay otros servidores que también son compatibles. JBoss es otra opción popular.

Se instalan fácilmente en Mac OS X.