Java 25 LTS: la versión a la que vas a migrar
JDK 25 llegó el 16 de septiembre de 2025 y es la nueva versión con soporte a largo plazo. Cierra como definitivas Scoped Values, los ficheros fuente compactos, los imports de módulo y los constructores flexibles.
JDK 25 alcanzó la disponibilidad general el 16 de septiembre de 2025 y es una versión LTS, como lo fueron 8, 11, 17 y 21. Si tu equipo solo salta de LTS en LTS, este es el destino después de Java 21. La siguiente LTS prevista es Java 29.
Finales para el día a día
- JEP 512 — Ficheros fuente compactos y métodos
mainde instancia. Un programa pequeño ya no necesita clase nistatic, y la nueva claseIOvive enjava.lang, así que no hay que importarla:
void main() {
IO.println("Hola, Java 25");
}- JEP 511 — Declaraciones de import de módulo.
import module java.sql;importa de una vez todos los paquetes que exporta ese módulo. - JEP 513 — Cuerpos de constructor flexibles. Puedes escribir sentencias antes de
super(...)othis(...), por ejemplo para validar argumentos, con restricciones sobre cómo se usa la instancia que aún se está construyendo. - JEP 506 — Scoped Values. Una alternativa a
ThreadLocalpara compartir datos inmutables con los métodos llamados y con hilos hijos, pensada para convivir con los hilos virtuales. - JEP 510 — API de derivación de claves (KDF).
Finales en la JVM
- JEP 519 — Cabeceras de objeto compactas, como opción de producto (en JDK 27 pasan a ser el valor por defecto).
- JEP 521 — Shenandoah generacional.
- JEP 514 y 515 — Ahead-of-Time: ergonomía de línea de comandos y perfilado de métodos para arrancar más rápido.
- JEP 503 — se elimina el port de x86 de 32 bits.
En preview
JEP 502 — Stable Values (que en JDK 26 se renombra a Lazy Constants), JEP 505 — Structured Concurrency (quinta), JEP 507 — tipos primitivos en patrones (tercera) y JEP 470 — codificación PEM.
En NextPatch
Tienes dos rutas que llegan a 25: Java 21 → 25, de una LTS a la siguiente, y Java 23 → 25.