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 usandojavax.*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.*ajakarta.*.
📌 ¿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 conjavax.*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.Entity⟶jakarta.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
Publicar un comentario