Java EE o Jakarta EE, cuando ambos son los mismo

Java EE y Jakarta EE efectivamente son prácticamente lo mismo en cuanto a propósito, pero hay una diferencia histórica y de administración importante. Aquí te lo explico claramente:


🕰️ Java EE (Java Platform, Enterprise Edition)

  • Era la plataforma oficial para aplicaciones empresariales Java.
  • Desarrollado originalmente por Sun Microsystems, luego por Oracle.
  • Usaba paquetes como javax.servlet, javax.persistence, javax.ejb, etc.
  • La última versión oficial bajo el nombre Java EE fue Java EE 8 (2017).

🔁 Transición a Jakarta EE

  • En 2017, Oracle donó Java EE a la Eclipse Foundation.
  • Oracle mantuvo la propiedad del nombre "Java" y del paquete javax, por lo que no se pudo seguir usando javax.* en nuevas versiones.
  • Desde entonces, la plataforma pasó a llamarse Jakarta EE.
  • El cambio más relevante ocurrió en Jakarta EE 9, donde se renombró el paquete base de javax.* a jakarta.*.

📌 ¿Qué cambió técnicamente?

Característica Java EE 8 Jakarta EE 9+
Paquetes base javax.* jakarta.*
Mantenido por Oracle Eclipse Foundation
Compatibilidad JDK 8–11 JDK 11+
Ecosistema Estático desde 2017 Activo y en evolución

✅ ¿Entonces, son lo mismo?

Sí en concepto, pero no en ejecución actual.

  • Ambas son plataformas para construir aplicaciones empresariales en Java.
  • Jakarta EE es la evolución de Java EE, con mejoras, mantenimiento y evolución activa.
  • Si estás comenzando un proyecto hoy o vas a actualizar uno existente, lo recomendable es usar Jakarta EE 10 o superior.

💡 Java EE no "muere" automáticamente, porque:

  • Muchas APIs aún usan javax.* (por compatibilidad o porque no se han migrado).
  • Los runtimes de aplicación como Payara, WildFly, WebLogic, WebSphere siguen soportando javax.*, especialmente con Java EE 8.
  • Puedes seguir desarrollando sobre javax.* mientras uses Jakarta EE 8 (idéntica a Java EE 8, pero mantenida por Eclipse).

🧩 ¿Por qué todavía ves javax.*?

  • Compatibilidad retroactiva: Jakarta EE 8 mantuvo javax.* para facilitar la transición.
  • Librerías de terceros: Muchas aún no migran a jakarta.*, lo cual te obliga a seguir con javax.* si dependes de ellas.
  • Contenedores compatibles: Muchos servidores siguen incluyendo Java EE 8 por defecto.

🛑 ¿Cuándo es obligatorio usar jakarta.*?

Cuando migras a Jakarta EE 9 o superior:

  • Todo se mueve a jakarta.*.
  • Ya no hay compatibilidad binaria con javax.*, lo que implica migrar código.
  • Por ejemplo:
    javax.persistence.Entityjakarta.persistence.Entity

🔄 ¿Entonces vale la pena migrar?

Situación ¿Migrar ya?
Proyecto nuevo ✅ Sí, mejor usar Jakarta EE 10+ con jakarta.*
Proyecto estable en producción ❌ No es urgente, javax.* seguirá funcionando
Usas librerías antiguas ❌ Quédate en Java EE 8 o Jakarta EE 8
Necesitas nuevas funcionalidades ✅ Jakarta EE 10 o superior

🧠 En resumen:

Jakarta EE es Java EE con otro nombre y más libertad.
Java EE murió oficialmente en 2017. Desde entonces, todo lo nuevo es Jakarta EE.

Comentarios

Entradas populares de este blog

RESOLUCION SET BASICO DE FACTURA ELECTRÓNICA SII

Firma de un Documento XML con Certificado Digital en Java para Uso Tributario en Chile

Configurando Servlets y JSP en Jetty