¿Diferencia entre Java SE / EE / ME?

326

¿Cuál debo instalar cuando quiero comenzar a aprender Java? Comenzaré con algunos conceptos básicos, por lo que escribiré programas simples que crean archivos, directorios, editan archivos XML, etc., nada demasiado complejo por ahora.

Supongo que Java SE (Standard Edition) es la que debo instalar en mi escritorio de Windows 7. Ya tengo Komodo IDE que usaré para escribir el código Java.

Richard Knop
fuente
66
Debería comenzar aprendiendo Java SE. Java EE puede ser algo desconcertante al principio. Cuando esté listo, eche un vistazo a esta excelente página de descripción general de Java EE 7 para comenzar. Especialmente el tutorial Oracle EE 7 de Java es un buen lugar para comenzar.
dexter meyers

Respuestas:

545

Java SE = Edición estándar . Esta es la plataforma central de programación Java. Contiene todas las bibliotecas y API que cualquier programador de Java debería aprender (java.lang, java.io, java.math, java.net, java.util, etc.).

Java EE = Enterprise Edition . De Wikipedia:

La plataforma Java (Enterprise Edition) difiere de la Java Standard Edition Platform (Java SE) en que agrega bibliotecas que proporcionan funcionalidad para implementar software Java de múltiples niveles, distribuido y tolerante a fallas, basado en gran medida en componentes modulares que se ejecutan en un servidor de aplicaciones .

En otras palabras, si su aplicación requiere un sistema distribuido a gran escala, entonces debería considerar usar Java EE. Construido sobre Java SE, proporciona bibliotecas para acceso a bases de datos (JDBC, JPA), invocación de métodos remotos (RMI), mensajería ( JMS ), servicios web, procesamiento XML y define API estándar para Enterprise JavaBeans, servlets, portlets, Java Páginas del servidor, etc.

Java ME = Micro Edition . Esta es la plataforma para el desarrollo de aplicaciones para dispositivos móviles y sistemas integrados, como decodificadores. Java ME proporciona un subconjunto de la funcionalidad de Java SE, pero también presenta bibliotecas específicas para dispositivos móviles. Debido a que Java ME se basa en una versión anterior de Java SE, algunas de las nuevas características del lenguaje introducidas en Java 1.5 (por ejemplo, genéricos) no están disponibles.

Si eres nuevo en Java, definitivamente comienza con Java SE.

6006604
fuente
157
No estaría de acuerdo con recomendar un IDE a alguien que nunca antes haya codificado Java. Escribe algunos usando la línea de comando primero para que puedas tener una oportunidad de luchar para entender lo que significa CLASSPATH. Si usa Eclipse antes de comprender Java, son dos cosas importantes que ignora.
duffymo
47
@duffymo IMO en realidad es una buena idea tener una recomendación IDE, porque la codificación con un editor de texto sin formato no brinda ningún beneficio en el aprendizaje de un nuevo idioma, tener inteligencia y autocompletar es una ayuda invaluable para un programador que ya conoce otros ecosistemas para convertirse en familiarizado con el nuevo entorno.
Felice Pollano
44
@duffymo Todavía estoy leyendo esto después de 5 años cuando Google me trajo aquí, así que supongo que todavía hay un punto para comenzar una discusión. Sin embargo, en esta instancia específica, estoy de acuerdo con sus argumentos sobre IDEs.
qutab
8
No veo nada malo en discutir temas difíciles y atemporales.
LegendLength
2
¿Solo es específica la edición JDK? o JRE y JVM son diferentes para SE y EE?
Arun SR
68

Aquí hay algunas diferencias en términos de API

Java SE incluye tiene las siguientes API y muchas más

  • applet
  • awt
  • rmi
  • jdbc
  • columpio
  • colecciones
  • enlace xml
  • JavaFX (fusionado con Java SE 8)
  • API de transmisión de colecciones Java 8
  • API de Java 9 Reactive Streams
  • API Java 9 HTTP / 2

Java EE incluye las siguientes API y muchas más

  • servlet
  • websocket
  • caras de Java
  • inyección de dependencia
  • ejb
  • persistencia
  • transacción
  • jms
  • api por lotes

Java ME incluye las siguientes API y muchas más

  • Mensajería Inalámbrica
  • Servicios web Java ME
  • API de servicios de seguridad y confianza
  • Ubicación
  • API XML móvil

Espero que esto ayude.

tharindu_DG
fuente
1
Según lo presentado, ¿eso significa que lo que está en SE no está incluido en EE? ¿Y qué hay en mí no está en EE? Parece que si desea la mensajería inalámbrica, por ejemplo, necesita ME y no está disponible en EE. ¿Es esto correcto?
ejbytes
A partir de Java EE Versión 6, ¿la API de colecciones también forma parte de Java EE?
Sriyank Siddhartha
52

Java SE es la base sobre la cual se construye Java EE.

Java ME es un subconjunto de SE para dispositivos móviles.

Por lo tanto, debe instalar Java SE para su proyecto.

duffymo
fuente
36

Según la documentación de Oracle , en realidad hay cuatro plataformas Java:

  • Plataforma Java, Edición Estándar (Java SE)
  • Plataforma Java, Enterprise Edition (Java EE)
  • Plataforma Java, Micro Edition (Java ME)
  • JavaFX

Java SE es para desarrollar aplicaciones de escritorio y es la base para desarrollar en lenguaje Java. Consiste en herramientas de desarrollo, tecnologías de implementación y otras bibliotecas de clase y kits de herramientas utilizados en aplicaciones Java. Java EE está construido sobre Java SE, y se utiliza para desarrollar aplicaciones web y aplicaciones empresariales a gran escala. Java ME es un subconjunto de Java SE. Proporciona una API y una máquina virtual de tamaño reducido para ejecutar aplicaciones Java en dispositivos pequeños. JavaFX es una plataforma para crear aplicaciones de Internet enriquecidas utilizando una API de interfaz de usuario ligera. Es una adición reciente a la familia de plataformas Java.

Estrictamente hablando, estas plataformas son especificaciones; son normas, no software. La Plataforma Java, Kit de desarrollo de edición estándar (JDK) es una implementación oficial de la especificación Java SE, proporcionada por Oracle. También hay otras implementaciones, como OpenJDK y J9 de IBM.

Las personas nuevas en Java descargan un JDK para su plataforma y sistema operativo (el JDK de Oracle está disponible para descargar aquí ).

Jan Bodnar
fuente
1
Es cierto para Java 6. La documentación de Java 7 dice que hay 3 plataformas y JavaFX es parte de Java SE.
Javatar
Java SE es para desarrollar aplicaciones de escritorio Java EE se usa para desarrollar aplicaciones web y aplicaciones empresariales a gran escala.
AyukNayr
20

Al encontrarme con esta pregunta, encontré que la información proporcionada en el tutorial de Oracle es muy completa y que vale la pena compartir:

Las plataformas del lenguaje de programación Java

Hay cuatro plataformas del lenguaje de programación Java:

  • Plataforma Java, Edición Estándar (Java SE)

  • Plataforma Java, Enterprise Edition (Java EE)

  • Plataforma Java, Micro Edition (Java ME)

  • JavaFX

Todas las plataformas Java consisten en una máquina virtual Java (VM) y una interfaz de programación de aplicaciones (API). Java Virtual Machine es un programa, para una plataforma particular de hardware y software, que ejecuta aplicaciones de tecnología Java. Una API es una colección de componentes de software que puede usar para crear otros componentes o aplicaciones de software. Cada plataforma Java proporciona una máquina virtual y una API, y esto permite que las aplicaciones escritas para esa plataforma se ejecuten en cualquier sistema compatible con todas las ventajas del lenguaje de programación Java: independencia de plataforma, potencia, estabilidad, facilidad de desarrollo y seguridad.

Java SE

Cuando la mayoría de la gente piensa en el lenguaje de programación Java, piensan en la API Java SE. La API de Java SE proporciona la funcionalidad central del lenguaje de programación Java. Define todo, desde los tipos y objetos básicos del lenguaje de programación Java hasta clases de alto nivel que se utilizan para redes, seguridad, acceso a bases de datos, desarrollo de interfaz gráfica de usuario (GUI) y análisis XML.

Además de la API central, la plataforma Java SE consta de una máquina virtual, herramientas de desarrollo, tecnologías de implementación y otras bibliotecas y kits de herramientas de clase comúnmente utilizados en aplicaciones de tecnología Java.

Java EE

La plataforma Java EE está construida sobre la plataforma Java SE. La plataforma Java EE proporciona un entorno de API y tiempo de ejecución para desarrollar y ejecutar aplicaciones de red a gran escala, de múltiples niveles, escalables, confiables y seguras.

Java ME

La plataforma Java ME proporciona una API y una máquina virtual de tamaño reducido para ejecutar aplicaciones de lenguaje de programación Java en dispositivos pequeños, como teléfonos móviles. La API es un subconjunto de la API Java SE, junto con bibliotecas de clases especiales útiles para el desarrollo de aplicaciones de dispositivos pequeños. Las aplicaciones Java ME a menudo son clientes de los servicios de la plataforma Java EE.

JavaFX

JavaFX es una plataforma para crear aplicaciones de Internet enriquecidas utilizando una API de interfaz de usuario ligera. Las aplicaciones JavaFX utilizan gráficos y motores de medios acelerados por hardware para aprovechar los clientes de mayor rendimiento y una apariencia moderna, así como API de alto nivel para conectarse a fuentes de datos en red. Las aplicaciones JavaFX pueden ser clientes de los servicios de la plataforma Java EE.

Tarik
fuente
1
copiado del sitio oracle :)
Irfan Nasim
1
@IrfanNasim ¡Sé que está copiado de Oracle y lo mencioné! ¿Leíste la respuesta desde arriba? ¿Y sabe que en SO cuando proporciona un enlace debe copiar también la información importante, porque una vez que el enlace no está actualizado o no funciona, la gente aún podría leer lo que estaba en el enlace! ¡Es extraño que tengas 198 repeticiones y aún no conoces las reglas!
Tarik
13

Supongo que Java SE (Standard Edition) es la que debo instalar en mi escritorio de Windows 7

Si por supuesto . Java SE es el mejor para empezar. Por cierto, debes aprender los conceptos básicos de Java. Eso significa que debe aprender algunas de las bibliotecas y API en Java SE.

Diferencia entre las ediciones de la plataforma Java:

Java Micro Edition (Java ME):

  • Entorno de ejecución altamente optimizado.
  • Dirigirse a productos de consumo ( buscapersonas , teléfonos celulares).
  • Java ME se conocía anteriormente como Java 2 Platform, Micro Edition o J2ME.

Edición estándar de Java (Java SE):

Herramientas de Java, tiempos de ejecución y API para desarrolladores que escriben, implementan y ejecutan applets y aplicaciones. Java SE se conocía anteriormente como Java 2 Platform, Standard Edition o J2SE. (todos / principiantes a partir de esto)

Java Enterprise Edition (Java EE):

Se dirige a aplicaciones de servidor de clase empresarial . Java EE se conocía anteriormente como Java 2 Platform, Enterprise Edition o J2EE.

Otra pregunta duplicada para esta pregunta.


Por último, sobre J .. confusión

JVM (máquina virtual Java):

JVM es parte de JDK y JRE que traduce los códigos de bytes de Java y los ejecuta como código nativo en la máquina del cliente.

JRE (Java Runtime Environment):

Es el entorno proporcionado para que los programas de Java se ejecuten. Que contiene una JVM, bibliotecas de clases, y otros archivos de soporte. No contiene ninguna herramienta de desarrollo como compilador, depurador, etc.

JDK (Kit de desarrollo de Java):

JDK contiene las herramientas necesarias para desarrollar los programas java (javac, java, javadoc, appletviewer, jdb, javap, rmic, ...) y JRE para ejecutar el programa.

Java SDK (Kit de desarrollo de software Java):

SDK comprende un JDK y software adicional, como servidores de aplicaciones, depuradores y documentación.

Java SE:

La plataforma Java, Standard Edition (Java SE) le permite desarrollar e implementar aplicaciones Java en escritorios y servidores (igual que SDK).

J2SE, J2ME, J2EE

Cualquier edición de Java de 1.2 a 1.5

Lea más sobre estos temas:

Blasanka
fuente
11

Sí, Java SE es donde comenzar. Todas las tareas que menciona pueden manejarse con él.

Java ME es la edición móvil y EE es la edición Enterprise; Estas son versiones especializadas / extendidas de Standard Edition.

Péter Török
fuente
7

Sí, deberías comenzar con Java SE. Java EE es para aplicaciones web y Java ME es para aplicaciones móviles, ambas construidas a partir de SE.

Miguel
fuente
6

Java SE (Standard Edition) es para crear aplicaciones de escritorio.

Java ME (Micro Edition) es para dispositivos móviles antiguos.

Java EE (Enterprise Edition) es para desarrollar aplicaciones basadas en web.

Grant Gubatan
fuente
2

Si fuera usted, instalaría el SDK de Java SE. Una vez que esté instalado, asegúrese de tener establecida la variable de entorno JAVA_HOME y agregue el directorio% JAVA_HOME% \ bin a su ruta.

Corv1nus
fuente
1

Los desarrolladores usan diferentes ediciones de la plataforma Java para crear programas Java que se ejecutan en computadoras de escritorio, navegadores web, servidores web, dispositivos de información móvil (como teléfonos con funciones) y dispositivos integrados (como decodificadores de televisión).

Java Platform, Standard Edition (Java SE): la plataforma Java para el desarrollo de aplicaciones, que son programas independientes que se ejecutan en equipos de escritorio. Java SE también se utiliza para desarrollar applets, que son programas que se ejecutan en navegadores web.

Plataforma Java, Enterprise Edition (Java EE): la plataforma Java para desarrollar aplicaciones y servlets orientados a la empresa, que son programas de servidor que se ajustan a la API de Servlet de Java EE. Java EE está construido sobre Java SE.

Plataforma Java, Micro Edition (Java ME): La plataforma Java para desarrollar MIDlets, que son programas que se ejecutan en dispositivos de información móvil, y Xlets, que son programas que se ejecutan en dispositivos integrados.

Tapas Pal
fuente
0

El SE (JDK) tiene todas las bibliotecas que necesitará para cortar los dientes en Java. Recomiendo el IDE de Netbeans ya que viene incluido con el SE (JDK) directamente de Oracle. No olvide establecer las variables "ruta" y "classpath", especialmente si va a probar la línea de comandos. Con un sistema de 64 bits, inserte la "Ruta del sistema", por ejemplo, C: \ Archivos de programa (x86) \ Java \ jdk1.7.0 variable antes de C: \ Windows \ system32; para dirigir el sistema a su JDK.

espero que esto ayude.

usuario3064248
fuente
0

Java SE se utiliza para aplicaciones de escritorio y funciones básicas simples. Java EE se usa para escritorio, pero también para desarrollo web, redes y cosas avanzadas.

sandhu
fuente
0

EE: - Edición Enterprise: - Esta edición Java está diseñada específicamente para aplicaciones empresariales / negocios donde tenemos que lidiar con varios servidores diferentes con importancia en seguridad, gestión de transacciones, etc.

SE: - Edición estándar: - Esta edición es para aplicaciones estándar.

ME: - Micro Edition: - Esta edición de Java está diseñada específicamente para plataformas de telefonía móvil. Donde se da más importancia a la gestión de la memoria, ya que los recursos de memoria son limitados en los móviles.

Entonces, básicamente, JAVA tiene diferentes ediciones para diferentes requisitos.

romil
fuente