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

Configurando Servlets y JSP en Jetty

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

RESOLUCION SET BASICO DE FACTURA ELECTRÓNICA SII