2010-01-07 25 views
9

Por favor, confirme la declaración anterior?JDK = Java SE && JDK! = Java EE?

Necesito saber a qué se refieren cuando mencionan JDK.

+1

Creo que te refieres Java SE y Java EE, no "JSE" y "JEE". –

Respuesta

42

Java Development Kit es la forma en que generalmente se refieren a un conjunto de herramientas para crear aplicaciones Java, incluyendo el compilador de Java (para traducir sus clases Java de código en archivos de código de bytes .class), la Máquina Virtual de Java (para ejecutar esos archivos .class), la herramienta JAR para ZIP aplicaciones (o extraerlas) y así sucesivamente.

La Java Standard Edition suele referirse a las clases principales que conforman la base de la mayoría de los programas Java, como la API Collections (Lista, Mapa, Conjunto, etc.), las clases en el paquete java.lang , las clases de E/S, la API Threading, los paquetes y clases RMI, las clases i18n (internacionalización), la API JDBC y, por supuesto, las clases AWT y Swing para crear aplicaciones de escritorio y applets. Estas API son la base misma de todos los demás programas que puede escribir 'en Java', como IntelliJ IDEA IDE, Servlet Containers (como Tomcat), RDBMS (como Apache Derby) o clientes personalizados personalizados como SQuirreL. Estas clases se obtienen como parte del JDK (simplemente descifre el archivo src.zip directamente debajo de su carpeta JDK y vea lo que encuentra allí :))

Java EE es una especificación con sub-especificaciones que, como En conjunto, defina un conjunto de servicios que las implementaciones (como GlassFish o WebSphere de IBM) deben proporcionar para cumplir con la especificación. Estas 'implementaciones' son los llamados Contenedores de Java EE. Cuando oye a gente diciendo que 'GlassFish es una implementación de Java EE 1.6' quiere decir que GlassFish (un programa Java escrito usando las clases Java Standard Edition) proporciona todas las características que define la familia de especificaciones Java EE 6.

Se supone que las especificaciones Java EE cubren una necesidad particular dentro del campo de desarrollo de aplicaciones 'empresariales', como la especificación Servlet para procesamiento de solicitud-respuesta HTTP, la especificación EJB para gestión de transacciones y gestión del ciclo de vida de componentes. la especificación JMS para servicios de mensajería, etc. Los contenedores Java EE (WebLogic, WebSphere, Tomcat) proporcionan implementaciones reales de estas especificaciones como clases. En una declaración demasiado simplificada, estos contenedores proporcionan los JAR para las API de Java EE. Las clases dentro de estos archivos JAR hacen uso de las clases centrales de Java SE. Creo que esta última oración hace la conexión entre Java SE y Java EE.

Para concluir, diría que el JDK es simplemente un conjunto de programas que descarga y ejecuta para crear y ejecutar sus programas 'escritos en Java'. Si tiene un programa Java que solo utiliza las 'clases principales' y no requiere 'servicios empresariales', ejecute su programa Java sobre el JSE. Finalmente, si necesita proporcionar alguna funcionalidad y cualquiera de las implementaciones de la especificación Java EE cubren alguna de sus necesidades, digamos que necesita procesar solicitudes HTTP; usted crea un componente según lo dictado por la especificación (un servlet en este caso) y lo despliega en su contenedor Java EE -Tomcat, por ejemplo-.

Esperanza esto ayuda

+0

gracias a que ayudó mucho. entonces eso hace que Java SE sea parte de JDK básicamente. – ajsie

+0

hmm ¿diría Java SE = JDK + JRE o JDK = Java SE + JRE? – ajsie

+2

Me esforzaría por lo último en lugar de lo primero. Creo que es justo decir que el JDK es un JRE (la Máquina Virtual) más las clases Java SE. Para que su afirmación sea más precisa, incluiría aquellas herramientas menos visibles como el compilador, la herramienta JAR, el firmante de JAR y cosas así que se obtienen con el JDK. Creo que es una cuestión de opinión. Es por eso que acabo de poner lo que considero 'hechos en bruto' en mi respuesta original. Mejor, YJ – Ytsejammer

1

JDK = kit de desarrollo de java.

Java SE = edición estándar de Java (también conocido como JRE)

Java EE = edición empresarial de Java (también conocido como J2EE)


Actualización: Sun no es bien conocida por sus convenciones de nombres claros (Java 1.5 y Java 5.0 es lo mismo, por ejemplo).

Todo se reduce a esto: Si desea plazo aplicaciones java, ir a http://www.java.com y haga clic en el botón Descargar.

Si desea escribir aplicaciones Java, vaya a http://developer.sun.com y Wade a través de él hasta que encuentre una descarga que es alrededor de 80 MB llamados "JDK". Hay varias versiones diferentes de JDK basadas en qué tipo de cosas está desarrollando (aplicaciones web, aplicaciones de consola, etc.).

+0

pero cuando voy a la página de descarga para JSE, dice JDK6. Entonces JSE = JDK? ¿Y estás seguro de que JSE = JRE? ¿No es JRE el entorno de ejecución (lo necesitas para abrir aplicaciones Java) y JSE el entorno de desarrollo (lo necesitas para desarrollar aplicaciones Java)? – ajsie

+0

Ver actualizaciones arriba. – Seth

+0

@unknown: La distinción entre Runtime Edition y Development Kit tiene poco que ver con IMO con la distinción entre Standard Edition y Enterprise Edition. La página de descarga incluso dice que el JRE es parte del JDK (dado que cómo se ejecutaría el código compilado si no fuera con los componentes de tiempo de ejecución ;-)). –

0

kit JDK = Java Development

Java SE = Java Standard Edition

Java EE = Java Enterprise Edition

2

En el JDK en general se refiere al kit de desarrollo de Java SE. También puede ver la abreviatura en el respective download page y no en la del kit de desarrollo de Java EE o el kit de desarrollo de Java ME.

+0

bien eso es todo lo que necesito saber. entonces JRE! = JSE como dijo otra persona. – ajsie

+0

No, el JRE es, si entiendo la distinción completa correctamente, parte de JSE así como de JEE. –

5

Utilizando las definiciones anteriores, encontrará un JDK para Java SE (un conjunto de características java) y un JDK para Java EE (las características en Java SE + algunas características "empresariales").

Java Standard Edition y Java Enterprise Edition son la definición y las API del lenguaje Java, y las JDK son las herramientas que necesita para desarrollar algo con esas características.

+0

, pero ¿por qué tienen JDK6 = JSE en su sitio. y cuando se trata de JEE simplemente lo llaman JEE. – ajsie

8

Al descargar estándar kit de desarrollo de Java, obtiene la edición estándar de Java (Java SE) en un formulario de desarrollo (JDK). El tiempo de ejecución de Java (JRE) es el mismo conjunto de bibliotecas, etc. sin las herramientas de desarrollo (compilador, etc.)

Java EE es un conjunto de API/interfaces adicionales (y lo más habitual, algunas implementaciones de estas). Estas son API para aplicaciones web, EJB, etc. Puede usar el JDK para compilar para esto, siempre que tenga las API y las implementaciones adicionales. Lo más habitual es que una aplicación Java EE se ejecute en una aplicación o contenedor web.

Tenga en cuenta (también) que hasta hace muy poco, Java SE era conocido como J2SE, y Java EE era conocido como J2EE. La situación se confunde aún más por el hecho de que muchas personas (especialmente los reclutadores) confunden J2EE con EJB (que son solo una de las tecnologías en Java EE).

No está solo al ser confundido por esto. Normalmente me encuentro con profesionales experimentados que luchan con lo que estos significan, y Sun no ayuda con la introducción de Java 2 v1.6 (¿o es Java 6?) y cambiar el nombre de J2EE a Java EE.

+0

Probablemente quisiste decir J2EE en lugar de J2SE en la última oración :) +1 sin embargo. – BalusC

+0

Lo hice. ¡O quizás estaba confundido! Lo corregiré. Thx –

+0

IIRC, la cosa "Java 2" fue abolida después de la versión 1.4, y desde entonces se supone que es "Java 5" y "Java 6". –

3

Para ser más claro

Java SE - Java Standard Edition, pasa a venir en dos versiones: el JDK y JRE. JDK tiene el compilador y otras herramientas.

Java EE - Java Enterprise Edition es simplemente un estándar, y un par de bibliotecas que consisten principalmente en solo interfaces. Si bien hay componentes "independientes" que se pueden descargar solo para Java EE, tienen poco valor (una vez más, son solo interfaces), y generalmente se incluyen con el contenedor que usa para implementar o desarrollar aplicaciones Java EE. Además, Java EE se compone de muchos estándares (JMS, JSF, etc.).

+0

entonces Java SE = JDK + JRE? – ajsie

+0

Ambos son Java SE. El JRE es el componente de tiempo de ejecución. Casi todo lo que sea una aplicación "Java SE" se ejecutará en el JRE. Por ejemplo, Tomcat, un contenedor web compatible con JEE es, sin duda, una aplicación JSE, ya que solo necesita JRE para ejecutarse, a pesar de que implementa una parte de JEE. En el pasado, Tomcat necesitaba el JDK para poder usar el compilador de Java. Pero hoy, simplemente necesita el JRE. En todo caso, el JDK es un superconjunto de JSE. –