Historial de versiones de Java - Java version history

El lenguaje Java ha sufrido varios cambios desde JDK  1.0, así como numerosas adiciones de clases y paquetes a la biblioteca estándar . Desde J2SE 1.4, la evolución del lenguaje Java se ha regido por Java Community Process (JCP), que utiliza Java Specification Requests (JSR) para proponer y especificar adiciones y cambios a la plataforma Java . El idioma está especificado por Java Language Specification (JLS); los cambios en el JLS se gestionan bajo JSR 901 .

Además de los cambios de idioma, se han realizado otros cambios en la biblioteca de clases de Java a lo largo de los años, que ha crecido de unos cientos de clases en JDK 1.0 a más de tres mil en J2SE 5. API completamente nuevas , como Swing y Java2D , Se han introducido, y muchas de las clases y métodos originales de JDK 1.0 han quedado obsoletos . Algunos programas permiten la conversión de programas Java de una versión de la plataforma Java a una más antigua (por ejemplo, Java 5.0 con versiones anteriores de la versión 1.4) (consulte Herramientas de compatibilidad con Java ).

Con respecto a Oracle Java SE Support Roadmap, las versiones 17, 11 y 8 son las versiones de soporte a largo plazo (LTS) actualmente admitidas , donde los clientes de Oracle recibirán Oracle Premier Support. La última actualización pública de software gratuito de Java 8 LTS para uso comercial fue lanzada por Oracle en enero de 2019, mientras que Oracle continúa lanzando actualizaciones públicas gratuitas de Java 8 para desarrollo y uso personal de manera indefinida. Java 10, una versión de lanzamiento rápido previamente admitida, finalizó su soporte en septiembre de 2018, la misma fecha en que comenzó el soporte para Java 11. Java 7 ya no se admite públicamente. Para Java 11, Oracle no proporcionará soporte a largo plazo para el público; en cambio, se espera que la comunidad OpenJDK más amplia , como Eclipse Adoptium u otras, realice el trabajo.

La disponibilidad general de Java 17 comenzó el 14 de septiembre de 2021 y Java 18 está en desarrollo.

Versión Fecha de
lanzamiento
Fin de
las actualizaciones públicas gratuitas

Soporte extendido hasta
Versión antigua, ya no se mantiene: JDK Beta 1995 ? ?
Versión antigua, ya no se mantiene: JDK 1.0 Enero de 1996 ? ?
Versión antigua, ya no se mantiene: JDK 1.1 Febrero de 1997 ? ?
Versión antigua, ya no se mantiene: J2SE 1.2 Diciembre de 1998 ? ?
Versión antigua, ya no se mantiene: J2SE 1.3 Mayo de 2000 ? ?
Versión antigua, ya no se mantiene: J2SE 1.4 Febrero de 2002 Octubre de 2008 febrero de 2013
Versión antigua, ya no se mantiene: J2SE 5.0 Septiembre de 2004 Noviembre de 2009 Abril de 2015
Versión antigua, ya no se mantiene: Java SE 6 Diciembre de 2006 abril 2013 Diciembre de 2018
Diciembre de 2026 para Azul
Versión antigua, ya no se mantiene: Java SE 7 Julio de 2011 Abril de 2015 Julio 2022
Versión anterior, pero aún se mantiene: Java SE 8 (LTS) Marzo del 2014 Enero de 2019 para Oracle (comercial)
Diciembre de 2030 para Oracle (no comercial)
Diciembre de 2030 para Azul
Mayo de 2026 para IBM Semeru
Al menos mayo de 2026 para Eclipse Adoptium
Al menos mayo de 2026 para Amazon Corretto
Diciembre 2030
Versión antigua, ya no se mantiene: Java SE 9 Septiembre de 2017 Marzo de 2018 para OpenJDK N / A
Versión antigua, ya no se mantiene: Java SE 10 Marzo de 2018 Septiembre de 2018 para OpenJDK N / A
Versión anterior, pero aún se mantiene: Java SE 11 (LTS) Septiembre de 2018 Septiembre de 2026 para Azul
Octubre de 2024 para IBM Semeru
Al menos octubre de 2024 para Eclipse Adoptium
Al menos septiembre de 2027 para Amazon Corretto
Al menos octubre de 2024 para Microsoft
Septiembre de 2026
Septiembre de 2026 para Azul
Versión antigua, ya no se mantiene: Java SE 12 Marzo de 2019 Septiembre de 2019 para OpenJDK N / A
Versión antigua, ya no se mantiene: Java SE 13 Septiembre de 2019 Marzo de 2020 para OpenJDK N / A
Versión antigua, ya no se mantiene: Java SE 14 Marzo de 2020 Septiembre de 2020 para OpenJDK N / A
Versión antigua, ya no se mantiene: Java SE 15 Septiembre de 2020 Marzo de 2021 para OpenJDK
Marzo de 2023 para Azul
N / A
Versión antigua, ya no se mantiene: Java SE 16 Marzo 2021 Septiembre de 2021 para OpenJDK N / A
Versión estable actual: Java SE 17 (LTS) Septiembre 2021 Septiembre de 2029 para Azul
Al menos septiembre de 2027 para Microsoft
Al menos TBA para Eclipse Adoptium
Septiembre de 2029 o más tarde
Septiembre de 2029 para Azul
Lanzamiento futuro: Java SE 18 Marzo 2022 Septiembre de 2022 para OpenJDK N / A
Lanzamiento futuro: Java SE 19 Septiembre 2022 Marzo de 2023 para OpenJDK N / A
Lanzamiento futuro: Java SE 20 Marzo 2023 Septiembre de 2023 para OpenJDK N / A
Lanzamiento futuro: Java SE 21 (LTS) Septiembre 2023 TBA Septiembre 2031
Leyenda:
Versión antigua
Versión anterior, aún mantenida
Ultima versión
Última versión de vista previa
Lanzamiento futuro

Historia

En septiembre de 2017, Mark Reinhold, arquitecto jefe de la plataforma Java, propuso cambiar el tren de lanzamiento a "un lanzamiento de funciones cada seis meses" en lugar del programa de dos años vigente en ese momento. Esta propuesta entró en vigor para todas las versiones siguientes y sigue siendo el calendario de lanzamiento actual.

JDK 1.0

JDK 1.0
Liberado 23 de enero de 1996 ; Hace 25 años ( 23/01/1996 )

La primera versión fue lanzada el 23 de enero de 1996. La primera versión estable, JDK 1.0.2, se llama Java 1.

JDK 1.1

JDK 1.1
Liberado 19 de febrero de 1997 ; Hace 24 años ( 1997-02-19 )

Las principales adiciones al lanzamiento del 19 de febrero de 1997 incluyeron:

J2SE 1.2

J2SE 1.2
Nombre clave Patio de recreo
Liberado 8 de diciembre de 1998 ; Hace 22 años ( 08/12/1998 )

Zona de juegos con nombre en clave

El lanzamiento del 8 de diciembre de 1998 y los lanzamientos posteriores a J2SE 5.0 fueron renombrados retrospectivamente como Java 2 y el nombre de la versión "J2SE" ( Java 2 Platform, Standard Edition ) reemplazó a JDK para distinguir la plataforma base de J2EE ( Java 2 Platform, Enterprise Edition ). y J2ME ( Java 2 Platform, Micro Edition ). Esta fue una versión muy significativa de Java, ya que triplicó el tamaño de la plataforma Java a 1520 clases en 59 paquetes. Las principales adiciones incluyeron:

J2SE 1.3

J2SE 1.3
Nombre clave Cernícalo
Liberado 8 de mayo de 2000 ; Hace 21 años ( 08/05/2000 )

Nombre en clave cernícalo

Los cambios más notables en la versión del 8 de mayo de 2000 fueron:

J2SE 1.4

J2SE 1.4
Nombre clave Esmerejón
Liberado 6 de febrero de 2002 ; Hace 19 años ( 2002-02-06 )
Fin del apoyo público Octubre de 2008 ( 2008-10 )
Fin del soporte pagado febrero de 2013 ( 2013-02 )

Nombre en clave Merlin

La versión del 6 de febrero de 2002 fue la primera versión de la plataforma Java desarrollada bajo el Proceso de la comunidad Java como JSR 59 . Los cambios importantes incluyeron:

El soporte público y las actualizaciones de seguridad para Java 1.4 finalizaron en octubre de 2008. Las actualizaciones de seguridad pagas para los clientes de Oracle finalizaron en febrero de 2013.

J2SE 5.0

J2SE 5.0
Nombre clave Tigre
Liberado 30 de septiembre de 2004 ; Hace 17 años ( 30 de septiembre de 2004 )
Fin del apoyo público Noviembre de 2009 ( 2009-11 )
Fin del soporte pagado Abril de 2015 ( 2015-04 )

Nombre en clave Tigre

El lanzamiento del 30 de septiembre de 2004 se numeró originalmente como 1.5, que todavía se usa como el número de versión interno. El número se cambió para "reflejar mejor el nivel de madurez, estabilidad, escalabilidad y seguridad del J2SE". Esta versión fue desarrollada bajo JSR 176 .

J2SE 5.0 entró en su período de finalización de actualizaciones públicas el 8 de abril de 2008; las actualizaciones ya no están disponibles para el público a partir del 3 de noviembre de 2009. Las actualizaciones estuvieron disponibles para los clientes de pago de Oracle hasta mayo de 2015.

Tiger agregó una serie de características de lenguaje nuevas e importantes:

  • Genéricos : proporciona seguridad de tipo en tiempo de compilación (estática) para colecciones y elimina la necesidad de la mayoría de tipos de conversión ( conversión de tipo) (especificado por JSR 14 )
  • Metadatos : también llamados anotaciones ; permite que las construcciones del lenguaje, como clases y métodos, se etiqueten con datos adicionales, que luego pueden ser procesados ​​por utilidades con reconocimiento de metadatos (especificadas por JSR 175 )
  • Autoboxing / unboxing: conversiones automáticas entre tipos primitivos (como int) y clases de envoltura primitiva (como Integer) (especificadas por JSR 201 )
  • Enumeraciones : la enumpalabra clave crea una typesafe , lista ordenada de valores (como Day.MONDAY, Day.TUESDAY, etc.); anteriormente, esto solo se podía lograr mediante enteros constantes no seguros para tipos o clases construidas manualmente (patrón de enumeración seguro para tipos) (especificado por JSR 201 )
  • Varargs : el último parámetro de un método ahora se puede declarar usando un nombre de tipo seguido de tres puntos (p void drawtext(String... lines). Ej. ); en el código de llamada se puede usar cualquier número de parámetros de ese tipo y luego se colocan en una matriz para pasar al método, o alternativamente, el código de llamada puede pasar una matriz de ese tipo
  • for eachBucle mejorado : la forsintaxis del bucle se amplía con una sintaxis especial para iterar sobre cada miembro de una matriz o cualquiera Iterable, como las Collectionclases estándar (especificadas por JSR 201 )
  • Semántica de ejecución mejorada para programas Java de subprocesos múltiples; El nuevo modelo de memoria de Java aborda cuestiones de complejidad, eficacia y rendimiento de especificaciones anteriores.
  • Importaciones estáticas

También hubo las siguientes mejoras en las bibliotecas estándar:

Java 5 es la última versión de Java que admite oficialmente Microsoft Windows 98 y Windows ME , mientras que Windows Vista era la versión más nueva de Windows en la que se admitía J2SE 5 antes de que Java 5 terminara su vida útil en octubre de 2009.

Java 5 Update 5 (1.5.0_05) es la última versión de Java que funciona en Windows 95 (con Internet Explorer 5.5 instalado) y Windows NT 4.0 .

Java 5 estuvo disponible por primera vez en Apple Mac OS X 10.4 (Tiger) y era la versión predeterminada de Java instalada en Apple Mac OS X 10.5 (Leopard).

El soporte público y las actualizaciones de seguridad para Java 1.5 finalizaron en noviembre de 2009. Las actualizaciones de seguridad pagas para los clientes de Oracle finalizaron en abril de 2015.

Cambio de versión

Esta versión introdujo un nuevo sistema de control de versiones para el lenguaje Java, aunque el antiguo sistema de control de versiones siguió utilizándose para las bibliotecas de desarrolladores:

Ambos números de versión "1.5.0" y "5.0" se utilizan para identificar esta versión de Java 2 Platform Standard Edition. La versión "5.0" es la versión del producto, mientras que "1.5.0" es la versión para desarrolladores. El número "5.0" se utiliza para reflejar mejor el nivel de madurez, estabilidad, escalabilidad y seguridad del J2SE.

Esta correspondencia continuó hasta las versiones posteriores (Java 6 = JDK 1.6, Java 7 = JDK 1.7, etc.).

Actualizaciones de Java 5

Tabla de actualizaciones de Java 5
Liberación Fecha de lanzamiento Reflejos
Java SE 5 2004-10-04 Metadatos, tipos genéricos, autoboxing y auto-unboxing de tipos primitivos, forbucle mejorado , tipos enumerados, importación estática, E / S formateada, varargs y utilidades de simultaneidad. Tiempo de inicio y espacio de memoria mejorados. Uso compartido de datos de solo lectura entre varias JVM en ejecución. Supervisión y gestión remota. Una nueva API de creación de perfiles de JVM. Generación programática de seguimientos de pila. Soporte para XML 1.1 con espacios de nombres, esquema XML, SAX 2.0.2, DOM Nivel 3 y XSLT con un compilador XSLTC rápido. Soporte Unicode 4.0.
Java SE 5 Actualización 1 2004-12-25 Se han corregido 50 errores.
Java SE 5 Actualización 2 2005-03-16 Se solucionaron algunos accidentes. El programa ahora está compilado con una mejor optimización. Se realizaron correcciones de errores de calendario y otras correcciones de errores.
Java SE 5 Actualización 3 2005-05-03 Esta versión corrige varios errores, incluidos los bloqueos del complemento de Mozilla para Linux .
Java SE 5 Actualización 4 2005-07-04 Con el lanzamiento, la compatibilidad con J2SE para Windows de 64 bits ha progresado desde la versión candidata a la versión final. Esta versión se ejecuta en máquinas en modo AMD64 / EM64T de 64 bits con Windows Server 2003 x64 Edition.
Java SE 5 Update 5 2005-09-18 Se solucionaron varios errores y se realizaron mejoras de rendimiento. Última versión para Windows 95 y Windows NT 4.0.
Java SE 5 Update 6 2005-12-07 Antes de esta actualización, un subprograma o aplicación podría especificar la versión del JRE en la que se ejecutaría. Esto ha cambiado. Todos los subprogramas se ejecutan con la última versión de JRE.
Java SE 5 Update 7 2006-05-29 Se solucionaron varios errores y se realizaron mejoras de rendimiento.
Java SE 5 Actualización 8 2006-08-13 Se solucionaron varios errores y se realizaron mejoras de rendimiento.
Java SE 5 Update 9 2006-11-12 Esta versión corrige varias regresiones menores.
Java SE 5 Actualización 10 2006-12-22 Se agregó una implementación de la función de notificación de eventos epoll I / O, compatible con Linux 2.6. Se solucionaron muchos errores.
Java SE 5 Update 11 2007-03-08 Se solucionaron varios errores y se realizaron mejoras de rendimiento.
Java SE 5 Update 12 2007-06-11
Actualización 13 de Java SE 5 2007-10-05 Se solucionaron varias vulnerabilidades de seguridad en Java Web Start relacionadas con el acceso a archivos locales. Se solucionó una vulnerabilidad de seguridad en el JRE que permitía eludir las restricciones de acceso a la red. Se solucionaron varios otros problemas de seguridad y errores menores.
Java SE 5 Update 14
Actualización 15 de Java SE 5 2008-03-06 Se corrigieron varios bloqueos debido a que el búfer de pila estaba fuera de los límites, junto con varios otros errores. Ahora se incluyen nuevos certificados raíz de AOL, DigiCert y TrustCenter.
Java SE 5 Actualización 16 2008-07-23 Esta versión corrige varias fallas de seguridad, como vulnerabilidades DoS, desbordamientos de búfer y otros errores que podrían provocar fallas o que darían acceso a los subprogramas a ciertos recursos del sistema. Estas vulnerabilidades se ubicaron en Java Web Start, en el Agente de administración de Java Management Extensions (JMX) y en las funciones para manejar datos XML.
Actualización 17 de Java SE 5 2008-12-03 La implementación del juego de caracteres UTF-8 se actualizó para manejar la forma no más corta de secuencias de bytes UTF-8, introduciendo una incompatibilidad de versiones anteriores. Se agregaron nuevos certificados raíz. Se solucionaron muchos errores.
Actualización 18 de Java SE 5 2009-03-25 Se resolvieron varios problemas de seguridad. El comportamiento de la función JNDI para almacenar y recuperar objetos Java en un directorio LDAP se modificó ligeramente. Se agregaron cinco nuevos certificados raíz. Se solucionaron muchos errores.
Actualización 19 de Java SE 5 2009-05-29 Se agregó soporte para varias configuraciones del sistema. Se agregó compatibilidad con etiquetas de servicio. Se solucionaron muchos errores, incluidos varios bloqueos y pérdidas de memoria.
Java SE 5 Update 20 2009-08-06 Se resolvieron varias vulnerabilidades de seguridad, como el acceso potencial al sistema por parte de subprogramas que no son de confianza y los desbordamientos de enteros en el procesamiento de imágenes y en Unpack200. Se agregaron varios certificados raíz nuevos. Se solucionaron muchos otros errores menores.
Actualización 21 de Java SE 5 2009-09-09 Se solucionaron muchos errores menores.
Actualización 22 de Java SE 5 2009-11-04 Esta versión marca el fin de la vida útil (EOSL) para Java 5 y es su versión pública final. Se solucionaron varias vulnerabilidades de seguridad, informadas como Sun Alerts 269868, 270474, 270475 y 270476. Se solucionaron varios otros errores. Además, se agregaron dos nuevos certificados raíz.
Actualización 23 de Java SE 5 2010-01-13 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10 ; 32 correcciones de seguridad.
Actualización 24 de Java SE 5 2010-04-15 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 2 correcciones de seguridad.
Actualización 25 de Java SE 5 2010-07-07 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 26 correcciones de seguridad.
Actualización 26 de Java SE 5 2010-10-12 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 2 correcciones de seguridad.
Actualización 27 de Java SE 5 2010-12-08 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 22 correcciones de seguridad.
Actualización 28 de Java SE 5 2011-02-15 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 22 correcciones de seguridad
Actualización 29 de Java SE 5 2011-03-21 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 21 correcciones de seguridad.
Actualización 30 de Java SE 5 2011-06-07 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 1 solución de seguridad.
Actualización 31 de Java SE 5 2011-08-16 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 10 correcciones de seguridad.
Actualización 32 de Java SE 5 2011-10-18 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 20 correcciones de seguridad
Actualización 33 de Java SE 5 2011-12-12 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 21 correcciones de seguridad.
Actualización 34 de Java SE 5 2012-02-14 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 14 correcciones de seguridad
Actualización 35 de Java SE 5 2012-04-26 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 5 correcciones de seguridad.
Actualización 36 de Java SE 5 2012-06-12 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 14 correcciones de seguridad
Actualización 38 de Java SE 5 2012-08-14 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 30 correcciones de seguridad
Actualización 39 de Java SE 5 2013-02-19 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 50 correcciones de seguridad
Actualización 40 de Java SE 5 2013-02-19 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 5 correcciones de seguridad
Actualización 41 de Java SE 5 2013-03-04 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 2 correcciones de seguridad
Actualización 45 de Java SE 5 2013-04-16 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 42 correcciones de seguridad
Actualización 51 de Java SE 5 2013-06-18 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 40 correcciones de seguridad
Actualización 55 de Java SE 5 2013-10-15 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 51 correcciones de seguridad
Actualización 61 de Java SE 5 2014-01-14 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 36 correcciones de seguridad
Actualización 65 de Java SE 5 2014-04-15 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 37 correcciones de seguridad
Actualización 71 de Java SE 5 2014-07-15 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 20 correcciones de seguridad
Actualización 75 de Java SE 5 2014-10-16 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 25 correcciones de seguridad
Actualización 81 de Java SE 5 2015-01-21 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 19 correcciones de seguridad
Actualización 85 de Java SE 5 2015-04-14 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 14 correcciones de seguridad

Java SE 6

Java SE 6
Nombre clave Mustango
Liberado 11 de noviembre de 2006 ; hace 14 años ( 11/11/2006 )
Fin del apoyo público febrero de 2013 ( 2013-02 )

Nombre en clave Mustang

A partir de la versión lanzada el 11 de diciembre de 2006, Sun reemplazó el nombre "J2SE" por Java SE y eliminó el ".0" del número de versión. La numeración interna para desarrolladores sigue siendo 1.6.0.

Esta versión fue desarrollada bajo JSR 270 .

Durante la fase de desarrollo, se lanzaron nuevas compilaciones, incluidas mejoras y correcciones de errores, aproximadamente cada semana. Las versiones beta se lanzaron en febrero y junio de 2006, lo que condujo a una versión final que se produjo el 11 de diciembre de 2006.

Principales cambios incluidos en esta versión:

  • Se eliminó el soporte para versiones anteriores de Win9x; Extraoficialmente, Java 6 Update 7 fue la última versión de Java que se demostró que funciona en estas versiones de Windows. Se cree que esto se debe a los principales cambios en la Actualización 10.
  • Soporte de lenguaje de scripting ( JSR 223 ): API genérica para una estrecha integración con lenguajes de scripting e integración incorporada de Mozilla JavaScript Rhino .
  • Mejoras dramáticas de rendimiento para la plataforma central y Swing .
  • Soporte de servicio web mejorado a través de JAX-WS ( JSR 224 ).
  • Soporte JDBC 4.0 ( JSR 221 ).
  • API de compilador de Java ( JSR 199 ): una API que permite a un programa Java seleccionar e invocar un compilador de Java mediante programación.
  • Actualización de JAXB a la versión 2.0: incluida la integración de un analizador StAX .
  • Soporte para anotaciones conectables ( JSR 269 ).
  • Muchas mejoras de la GUI , como la integración de SwingWorker en la API, la clasificación y el filtrado de tablas y el verdadero doble búfer de Swing (eliminando el efecto de área gris).
  • Las mejoras de JVM incluyen: optimización del rendimiento de la sincronización y del compilador , nuevos algoritmos y actualizaciones de los algoritmos de recolección de basura existentes y rendimiento de inicio de la aplicación.

Java 6 se puede instalar en Mac OS X 10.5 (Leopard) que se ejecuta en máquinas con procesador de 64 bits (Core 2 Duo y superior). Java 6 también es compatible con máquinas de 32 y 64 bits que ejecutan Mac OS X 10.6 (Snow Leopard).

Java 6 llegó al final de su vida útil admitida en febrero de 2013, momento en el que se programó la detención de todas las actualizaciones públicas, incluidas las actualizaciones de seguridad. Oracle lanzó dos actualizaciones más de Java 6 en marzo y abril de 2013, que corrigieron algunas vulnerabilidades de seguridad.

Actualizaciones de Java 6

Después del lanzamiento de Java 6, Sun y, posteriormente, Oracle, lanzaron varias actualizaciones que, aunque no cambiaron ninguna API pública, mejoraron la usabilidad del usuario final o corrigieron errores.

Tabla de actualizaciones de Java 6
Liberación Fecha de lanzamiento Reflejos
Java SE 6 2006-12-23 Esta versión agrega muchas mejoras en los campos de servicios web, secuencias de comandos, bases de datos, anotaciones conectables y seguridad, así como calidad, compatibilidad y estabilidad. JConsole ahora es compatible oficialmente. Se ha agregado compatibilidad con Java DB.
Java SE 6 Actualización 1 2007-05-07
Java SE 6 Update 2 2007-07-03
Java SE 6 Update 3 2007-10-03
Java SE 6 Update 4 2008-01-14 HotSpot VM 10
Java SE 6 Update 5 2008-03-05 Se eliminaron varias fallas de seguridad. Ahora se incluyen nuevos certificados raíz de AOL, DigiCert y TrustCenter.
Java SE 6 Update 6 2008-04-16 Se introdujo una solución para el infame problema de aserción de bloqueo de Xlib / XCB. Se solucionó una pérdida de memoria al usar la autenticación Kerberos con LoginContext. Se solucionaron varios otros errores.
Java SE 6 Update 7 Extraoficialmente, Java SE 6 Update 7 (1.6.0.7) es la última versión de Java que se demostró que funciona en la familia de sistemas operativos Win9x.
Java SE 6 Update 10 2008-10-15 HotSpot VM 11. Los principales cambios de esta actualización incluyen:
  • Java Deployment Toolkit, un conjunto de funciones de JavaScript para facilitar la implementación de subprogramas y aplicaciones Java Web Start .
  • Java Kernel, un pequeño instalador que incluye solo las clases JRE más utilizadas. Otros paquetes se descargan cuando es necesario.
  • Actualizador mejorado.
  • Control de versiones mejorado y compatibilidad con pack200: ya no es necesaria la compatibilidad del lado del servidor.
  • Java Quick Starter, para mejorar el tiempo de arranque en frío.
  • Rendimiento mejorado de primitivas gráficas Java2D en Windows, usando Direct3D y aceleración de hardware.
  • Una nueva apariencia de Swing llamada Nimbus y basada en sintetizadores .
  • Complemento Java de próxima generación: los subprogramas ahora se ejecutan en un proceso separado y admiten muchas funciones de las aplicaciones Web Start.
Java SE 6 Update 11 2008-12-03 13 correcciones de seguridad
Java SE 6 Update 12 2008-12-12 Sin correcciones de seguridad; Complemento Java de 64 bits (solo para navegadores web de 64 bits); Compatibilidad con Windows Server 2008 ; mejoras de rendimiento de gráficos y aplicaciones JavaFX
Java SE 6 Update 13 2009-03-24 7 correcciones de seguridad, JNDI almacena y recupera objetos Java en LDAP ligeramente modificado, JMX Change (createMBeanunregisterMBean), 4 nuevos certificados raíz agregados
Java SE 6 Update 14 2009-05-28 HotSpot VM 14. Esta versión incluye amplias actualizaciones de rendimiento del compilador JIT, punteros comprimidos para máquinas de 64 bits, así como compatibilidad con el recolector de basura de pausa baja G1 (Garbage First).

La -XX:+DoEscapeAnalysisopción indica al compilador HotSpot JIT que utilice el análisis de escape para determinar si los objetos locales se pueden asignar en la pila en lugar del montón .

Algunos desarrolladores han notado un problema introducido en esta versión que hace que los depuradores pierdan puntos de interrupción aparentemente al azar. Sun tiene un error correspondiente, que está rastreando el problema. La solución alternativa se aplica a las máquinas virtuales cliente y servidor. El uso de la -XX:+UseParallelGCopción evitará la falla. Otra solución es revertir a la actualización 13 o actualizar a la 16.

Actualización 15 de Java SE 6 2009-08-04 Se introdujo la funcionalidad de parche en el lugar
Java SE 6 Update 16 2009-08-11 Se solucionó el problema introducido en la actualización 14 que causaba que los depuradores perdieran puntos de interrupción
Java SE 6 Update 17 2009-11-04 Correcciones de seguridad; dos nuevos certificados raíz
Actualización 18 de Java SE 6 2010-01-13 Sin correcciones de seguridad; Hotspot VM 16; soporte para Ubuntu 8.04 LTS Desktop Edition, SLES 11, Windows 7 , Red Hat Enterprise Linux 5.3, Firefox 3.6, VisualVM 1.2; base de datos Java actualizada; muchas mejoras de rendimiento
Actualización 19 de Java SE 6 2010-03-30 Correcciones de seguridad; cambios en el certificado raíz: siete nuevos, tres eliminados, cinco reemplazados con algoritmos de firma más sólidos; arreglo provisional para el ataque de renegociación de TLS
Java SE 6 Update 20 2010-04-15 2 correcciones de seguridad
Actualización 21 de Java SE 6 2010-07-07 Sin correcciones de seguridad; Hotspot VM 17; soporte para Red Hat Enterprise Linux 5.4 y 5.5, Oracle Enterprise Linux 4.8, 5.4, 5.5; Soporte de Google Chrome 4; soporte para indicadores de progreso de carga personalizados; VisualVM 1.2.2
Actualización 22 de Java SE 6 2010-10-12 29 arreglos de seguridad; Soporte RFC  5746
Actualización 23 de Java SE 6 2010-12-08 Sin correcciones de seguridad; Hotspot VM 19; mejor soporte para idiomas de derecha a izquierda
Java SE 6 Update 24 2011-02-15 21 arreglos de seguridad; base de datos Java actualizada
Actualización 25 de Java SE 6 2011-03-21 Sin correcciones de seguridad; Hotspot VM 20; soporte para Internet Explorer 9 , Firefox 4 y Chrome 10; BigDecimal mejorado; incluye "niveles" de compilación en la VM Server que permite que se inicie rápidamente como lo hace la máquina virtual del cliente, además de conseguir un mejor rendimiento pico (esta función está activada mediante la especificación -servery -XX:+TieredCompilationlas opciones de comando)
Actualización 26 de Java SE 6 2011-06-07 17 nuevas correcciones de seguridad; última versión compatible con Windows Vista SP1
Actualización 27 de Java SE 6 2011-08-16 Sin correcciones de seguridad; certificación para Firefox 5
Actualización 29 de Java SE 6 2011-10-18 20 correcciones de seguridad, varias correcciones de errores
Actualización 30 de Java SE 6 2011-12-12 Sin correcciones de seguridad; corrección de la regresión SSL en la Actualización 29; soporte para Red Hat Enterprise Linux 6
Actualización 31 de Java SE 6 2012-02-14 14 correcciones de seguridad y una corrección de errores; la última versión funciona de manera confiable para Windows 2000
Actualización 32 de Java SE 6 2012-04-26 Sin correcciones de seguridad, varias correcciones de errores
Actualización 33 de Java SE 6 2012-06-12 14 correcciones de seguridad, carga mejorada de archivos de configuración de VM
Actualización 34 de Java SE 6 2012-08-14 Sin correcciones de seguridad, varias correcciones de errores
Java SE 6 Update 35 2012-08-30 Contiene una solución de seguridad en profundidad
Actualización 37 de Java SE 6 2012-10-16 30 correcciones de seguridad
Actualización 38 de Java SE 6 2012-12-11 Varias correcciones de errores
Actualización 39 de Java SE 6 2013-02-01 50 correcciones de seguridad
Actualización 41 de Java SE 6 2013-02-19 5 correcciones de seguridad
Actualización 43 de Java SE 6 2013-03-04 2 correcciones de seguridad
Actualización 45 de Java SE 6 2013-04-16 42 correcciones de seguridad; otros cambios; actualización pública final.
Actualización 51 de Java SE 6 2013-06-18 No disponible públicamente, solo disponible a través del programa de soporte de Java SE y en Apple Update para OS X Snow Leopard, Lion & Mountain Lion; hasta 40 arreglos de seguridad
Java SE 6 Update 65 2013-10-15 No disponible públicamente, solo disponible a través del programa de soporte de Java SE y en Apple Update para OS X Snow Leopard, Lion & Mountain Lion; al menos 11 correcciones de seguridad críticas
Actualización 71 de Java SE 6 2014-01-14 No disponible para descarga pública; 33 arreglos
Actualización 75 de Java SE 6 2014-04-15 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el grupo de parches recomendado de Solaris 10 núm. # 54; 25 correcciones de seguridad
Actualización 81 de Java SE 6 2014-07-15 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 11 correcciones de seguridad
Actualización 85 de Java SE 6 2014-10-16 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 18 correcciones de seguridad
Actualización 91 de Java SE 6 2015-01-21 Las versiones de Linux x64 y Windows i586 están disponibles como Implementación de referencia de Java SE 6. Otras versiones solo están disponibles a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 15 correcciones de seguridad
Actualización 95 de Java SE 6 2015-04-14 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 14 correcciones de seguridad
Actualización 101 de Java SE 6 2015-07-15 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 18 correcciones de seguridad La certificación para IE 10 y 11 se introdujo en 1.6.0_101
Actualización 105 de Java SE 6 2015-10-20 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 17 correcciones de seguridad
Actualización 111 de Java SE 6 2016-01-20 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 13 correcciones de seguridad
Actualización 113 de Java SE 6 2016-02-05 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 1 corrección de seguridad
Actualización 115 de Java SE 6 2016-04-21 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 8 correcciones de seguridad
Actualización 121 de Java SE 6 2016-07-19 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 15 correcciones de seguridad
Actualización 131 de Java SE 6 2016-10-18 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 13 correcciones de seguridad
Actualización 141 de Java SE 6 2017-01-17 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 17 correcciones de seguridad
Actualización 151 de Java SE 6 2017-04-18 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 10 correcciones de seguridad
Actualización 161 de Java SE 6 2017-07-18 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 5 correcciones de seguridad
Actualización 171 de Java SE 6 2017-10-20 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 7 correcciones de seguridad
Actualización 181 de Java SE 6 2018-01-16 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 12 correcciones de seguridad
Actualización 191 de Java SE 6 2018-04-17 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 7 correcciones de seguridad
Actualización 201 de Java SE 6 2018-07-17 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 3 correcciones de seguridad
Actualización 211 de Java SE 6 2018-10-18 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 8 correcciones de seguridad

Java SE 7

Java SE 7
Nombre clave Delfín
Liberado 28 de julio de 2011 ; Hace 10 años ( 28 de julio de 2011 )
Fin del apoyo público Abril de 2015 ( 2015-04 )
Fin del soporte pagado Junio ​​2022 ( 2022-06 )

Java 7 (nombre en clave Dolphin ) es una actualización importante que se lanzó el 7 de julio de 2011 y estuvo disponible para los desarrolladores el 28 de julio de 2011. El período de desarrollo se organizó en trece hitos; el 6 de junio de 2011 finalizó el último de los trece hitos. En promedio, se lanzaron 8 compilaciones (que generalmente incluían mejoras y correcciones de errores) por hito. La lista de funciones del proyecto OpenJDK 7 enumera muchos de los cambios.

Las adiciones en Java 7 incluyen:

  • Soporte JVM para lenguajes dinámicos , con el nuevo invokedynamiccódigo de bytes bajo JSR-292, siguiendo el trabajo de creación de prototipos que se realiza actualmente en la máquina virtual multilingüe.
  • Punteros comprimidos de 64 bits (disponibles en Java 6 con -XX:+UseCompressedOops)
  • Estos pequeños cambios de idioma (agrupados en un proyecto llamado Coin):
  • Cuerdas en interruptor
  • Gestión automática de recursos en declaración de prueba
  • Inferencia de tipo mejorada para la creación de instancias genéricas, también conocido como operador de diamante <>
  • Declaración simplificada del método varargs
  • Literales enteros binarios
  • Permitir guiones bajos en literales numéricos
  • Detectar múltiples tipos de excepciones y volver a generar excepciones con una verificación de tipos mejorada
  • Utilidades de concurrencia bajo JSR 166
  • Nueva biblioteca de E / S de archivos (definida por JSR 203) que agrega soporte para múltiples sistemas de archivos, metadatos de archivos y enlaces simbólicos. Los nuevos paquetes son java.nio.file, java.nio.file.attributeyjava.nio.file.spi
  • Timsort se utiliza para ordenar colecciones y matrices de objetos en lugar de fusionar ordenación
  • Soporte a nivel de biblioteca para algoritmos de criptografía de curva elíptica
  • Una canalización de XRender para Java 2D, que mejora el manejo de funciones específicas de las GPU modernas
  • Nuevas API de plataforma para las funciones de gráficos implementadas originalmente en la versión 6u10 como API no compatibles
  • Soporte mejorado a nivel de biblioteca para nuevos protocolos de red, incluidos SCTP y protocolo directo de sockets
  • Actualizaciones ascendentes a XML y Unicode
  • Conjuntos de reglas de implementación de Java

Lambda (implementación de Java de funciones lambda ), Jigsaw (implementación de módulos de Java ) y parte de Coin se eliminaron de Java 7 y se lanzaron como parte de Java 8 (excepto Jigsaw , que se lanzó en Java 9).

Java 7 fue la versión predeterminada para descargar en java.com desde abril de 2012 hasta que se lanzó Java 8.

Actualizaciones de Java 7

Oracle emitió actualizaciones públicas para la familia Java 7 de forma trimestral hasta abril de 2015, cuando el producto alcanzó el final de su disponibilidad pública. Las actualizaciones adicionales para JDK 7, que están programadas para continuar hasta julio de 2022, solo están disponibles para los clientes con un contrato de soporte.

Tabla de actualizaciones de Java 7
Liberación Fecha de lanzamiento Reflejos
Java SE 7 2011-07-28 Versión inicial; HotSpot VM 21
Java SE 7 Actualización 1 2011-10-18 20 correcciones de seguridad, otras correcciones de errores
Java SE 7 Update 2 2011-12-12 Sin correcciones de seguridad; HotSpot VM 22; mejoras de confiabilidad y rendimiento; soporte para Solaris 11 y Firefox 5 y posteriores; JavaFX incluido con Java SE JDK, mejoras para aplicaciones implementadas en la web
Java SE 7 Update 3 2012-02-14 14 correcciones de seguridad
Java SE 7 Update 4 2012-04-26 Sin actualizaciones de seguridad; HotSpot VM 23; Soporte JDK para Mac OS X
Java SE 7 Update 5 2012-06-12 14 correcciones de seguridad
Java SE 7 Update 6 2012-08-14 JavaFX y Java Access Bridge incluidos en la instalación de Java SE JDK y JRE, compatibilidad con JavaFX para monitores táctiles y almohadillas táctiles, compatibilidad con JavaFX para Linux , compatibilidad con JDK y JRE para Mac OS X, JDK para Linux en ARM
Java SE 7 Update 7 2012-08-30 4 correcciones de seguridad
Java SE 7 Update 9 2012-10-16 30 correcciones de vulnerabilidades de seguridad
Java SE 7 Update 10 2012-12-11 Nuevas funciones de seguridad, como la capacidad de deshabilitar la ejecución de cualquier aplicación Java en el navegador y nuevos cuadros de diálogo para advertirle cuando el JRE es inseguro, y corrección de errores.
Java SE 7 Update 11 2013-01-13 Olson Data 2012i; corrección de errores para problemas con el registro del complemento en sistemas con la versión independiente de JavaFX instalada, correcciones de seguridad para CVE - 2013-0422 ; el nivel de seguridad predeterminado para los subprogramas de Java y las aplicaciones de inicio web se ha aumentado de "Medio" a "Alto"
Java SE 7 Update 13 2013-02-01 50 correcciones de seguridad
Java SE 7 Update 15 2013-02-19 5 correcciones de seguridad
Java SE 7 Update 17 2013-03-04 2 correcciones de seguridad
Actualización 21 de Java SE 7 2013-04-16 Múltiples cambios que incluyen 42 correcciones de seguridad, un nuevo servidor JRE que no incluye el complemento y el JDK para Linux en ARM
Actualización 25 de Java SE 7 2013-06-18 Múltiples cambios que incluyen 40 correcciones de seguridad.
Java SE 7 Update 40 2013-09-10 621 correcciones de errores, nuevas funciones de seguridad, ARM flotante , Java Mission Control 5.2 y compatibilidad con Retina Display
Actualización 45 de Java SE 7 2013-10-15 51 arreglos de seguridad; protecciones contra la redistribución no autorizada de aplicaciones Java; restaurar avisos de seguridad; Cambios JAXP; TimeZone.setDefault change
Actualización 51 de Java SE 7 2014-01-14 36 arreglos de seguridad; bloquear los subprogramas de JAVA sin manifiesto (como la consola remota, el subprograma de Java, la tarjeta IBM IMM, la tarjeta HP iLO) incluso si el cuadro de diálogo de advertencia tiene la frase "se bloqueará en la próxima versión", 17 correcciones de errores
Actualización 55 de Java SE 7 2014-04-15 37 correcciones de seguridad, 19 correcciones de errores
Java SE 7 Update 60 2014-05-28 Java Mission Control 5.3, 130 correcciones de errores
Actualización 65 de Java SE 7 2014-07-15 18 correcciones de errores
Actualización 67 de Java SE 7 2014-08-04 1 corrección de errores
Actualización 71 de Java SE 7 2014-10-14 16 correcciones de errores
Actualización 72 de Java SE 7 2014-10-14 Misma fecha de lanzamiento con la Actualización 71 que la Actualización del Conjunto de Parches (PSU) correspondiente para Java SE 7, 36 correcciones de errores
Actualización 75 de Java SE 7 2015-01-20 12 correcciones de errores, SSLv3 deshabilitado de forma predeterminada
Actualización 76 de Java SE 7 2015-01-20 Misma fecha de lanzamiento con la Actualización 75 como Actualización del Conjunto de Parches (PSU) correspondiente para Java SE 7, 97 correcciones de errores
Actualización 79 de Java SE 7 2015-04-14 21 correcciones de seguridad, 6 correcciones de errores,
Actualización 80 de Java SE 7 2015-04-14 Última versión pública de Java 7; misma fecha de lanzamiento con la Actualización 79 como Actualización del Conjunto de Parches (PSU) correspondiente para Java SE 7, 104 correcciones de errores
Actualización 85 de Java SE 7 2015-07-15 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 25 correcciones de seguridad
Actualización 91 de Java SE 7 2015-10-20 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 20 correcciones de seguridad
Actualización 95 de Java SE 7 2016-01-19 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 8 correcciones de seguridad
Actualización 97 de Java SE 7 2016-02-05 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 1 corrección de seguridad
Actualización 99 de Java SE 7 2016-03-23 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 1 corrección de seguridad
Actualización 101 de Java SE 7 2016-04-18 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 22 correcciones de seguridad
Actualización 111 de Java SE 7 2016-07-19 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 36 correcciones de seguridad
Actualización 121 de Java SE 7 2016-10-18 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 32 correcciones de seguridad
Actualización 131 de Java SE 7 2017-01-17 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 34 correcciones de seguridad
Actualización 141 de Java SE 7 2017-04-18 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 8 correcciones de seguridad
Actualización 151 de Java SE 7 2017-07-18 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 4 correcciones de seguridad
Actualización 161 de Java SE 7 2017-10-20 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 4 correcciones de seguridad
Actualización 171 de Java SE 7 2018-01-16 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 51 correcciones de seguridad
Actualización 181 de Java SE 7 2018-04-17 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 12 correcciones de seguridad
Actualización 191 de Java SE 7 2018-07-17 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 9 correcciones de seguridad
Actualización 201 de Java SE 7 2018-10-18 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 13 correcciones de seguridad
Actualización 211 de Java SE 7 2019-01-15 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 5 correcciones de seguridad
Actualización 221 de Java SE 7 2019-04-16 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 5 correcciones de seguridad
Actualización 231 de Java SE 7 2019-07-16 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 6 correcciones de seguridad
Actualización 241 de Java SE 7 2019-10-15 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 15 correcciones de seguridad
Actualización 251 de Java SE 7 2020-01-14 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 12 correcciones de seguridad
Actualización 261 de Java SE 7 2020-04-14 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 15 correcciones de seguridad
Actualización 271 de Java SE 7 14 de julio de 2020 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 11 correcciones de seguridad
Actualización 281 de Java SE 7 2020-10-20 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 8 correcciones de seguridad
Actualización 291 de Java SE 7 2021-01-19 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 1 correcciones de seguridad
Actualización 301 de Java SE 7 2021-04-12 No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 11 correcciones de seguridad

Java SE 8

Java SE 8
Versión LTS
Liberado 18 de marzo de 2014 ; hace 7 años ( 18/03/2014 )
No. de PEC 8

Java 8 se lanzó el 18 de marzo de 2014 e incluyó algunas características que estaban planificadas para Java 7 pero que luego se aplazaron.

El trabajo sobre las características se organizó en términos de propuestas de mejora de JDK (JEP) .

  • JSR 335, JEP 126: Soporte a nivel de lenguaje para expresiones lambda (oficialmente, expresiones lambda; extraoficialmente, cierres ) bajo Project Lambda y métodos predeterminados ( métodos de extensión virtual ) que permiten la adición de métodos a interfaces sin romper las implementaciones existentes. Hubo un debate en curso en la comunidad Java sobre si agregar soporte para expresiones lambda. Más tarde, Sun declaró que las expresiones lambda se incluirían en Java y solicitó información de la comunidad para refinar la función. Apoyando expresiones lambda también permite funcionales operaciones al estilo en corrientes de elementos, tales como MapReduce , inspirada transformaciones en colecciones. Los métodos predeterminados permiten al autor de una API agregar nuevos métodos a una interfaz sin romper el código anterior al usarla. Aunque no era su intención principal, los métodos predeterminados también permiten la herencia múltiple de comportamiento (pero no el estado).
  • JSR 223, JEP 174: Project Nashorn , un tiempo de ejecución de JavaScript que permite a los desarrolladores incrustar código JavaScript dentro de las aplicaciones
  • JSR 308, JEP 104: Anotación sobre tipos de Java
  • Aritmética de enteros sin signo
  • JSR 337, JEP 120: anotaciones repetidas
  • JSR 310, JEP 150: API de fecha y hora
  • JEP 178: Bibliotecas JNI vinculadas estáticamente
  • JEP 153: Lanzamiento de aplicaciones JavaFX (lanzamiento directo de JAR de aplicaciones JavaFX)
  • JEP 122: Eliminar la generación permanente

Java 8 no es compatible con Windows XP, pero a partir de la actualización 25 de JDK 8, aún se puede instalar y ejecutar en Windows XP. Las actualizaciones anteriores de JDK 8 podrían ejecutarse bajo XP descargando un archivo en formato zip archivado y descomprimiéndolo para el ejecutable. La última versión de Java 8 podría ejecutarse en XP es la actualización 251. Pero la compatibilidad de sus componentes comienza a fallar en sistemas operativos no compatibles a principios de construir durante el desarrollo de actualizaciones de Java 8.

Desde octubre de 2014, Java 8 fue la versión predeterminada para descargar (y luego nuevamente la descarga que reemplazó a Java 9) desde el sitio web oficial. "Oracle continuará proporcionando actualizaciones públicas y actualizaciones automáticas de Java SE 8, indefinidamente para usuarios personales".

Actualizaciones de Java 8

Tabla de actualizaciones de Java 8
Liberación Fecha de lanzamiento Reflejos
Java SE 8 2014-03-18 Versión inicial
Java SE 8 Update 5 2014-04-15 Usando " *" en el Caller-Allowable-Codebaseatributo; 11 correcciones de errores
Java SE 8 Update 11 2014-07-15 Herramienta de análisis de dependencia de Java (jdeps); Opción del panel de control de Java para deshabilitar patrocinadores; Atributo de archivo JAR - Punto de entrada; Propiedad de límite de procesamiento JAXP - maxElementDepth; 18 correcciones de errores de seguridad, 15 correcciones de errores
Java SE 8 Update 20 2014-08-19 669 correcciones de errores, JMC 5.4, deduplicación de cadenas (deshabilitado de forma predeterminada)
Actualización 25 de Java SE 8 2014-10-14 10 correcciones de errores
Actualización 31 de Java SE 8 2015-01-19 26 correcciones de errores; SSLv3 (deshabilitado de forma predeterminada)
Java SE 8 Update 40 2015-03-03 645 correcciones de errores, se agregó la noción de "presión de memoria" para ayudar a indicar la cantidad de memoria del sistema que aún está disponible (presión baja = memoria alta, presión alta = memoria baja)
Actualización 45 de Java SE 8 2015-04-14 13 correcciones de errores
Actualización 51 de Java SE 8 2015-07-14 Se agregó soporte para sandbox nativo en plataformas Windows (deshabilitado de manera predeterminada); también, 25 correcciones de seguridad, 14 correcciones de errores
Java SE 8 Update 60 2015-08-18 480 correcciones de errores
Java SE 8 Update 65 2015-10-20 25 correcciones de seguridad, 3 correcciones de errores
Java SE 8 Update 66 2015-11-16 15 correcciones de errores
Actualización 71 de Java SE 8 2016-01-19 8 correcciones de seguridad, 5 correcciones de errores
Actualización 72 de Java SE 8 2016-01-19 8 correcciones de seguridad, 5 correcciones de errores, varias mejoras
Actualización 73 de Java SE 8 2016-02-03 1 corrección de seguridad
Actualización 74 de Java SE 8 2016-02-03 1 corrección de seguridad
Actualización 77 de Java SE 8 2016-03-23 1 corrección de seguridad
Actualización 91 de Java SE 8 2016-04-19 9 correcciones de seguridad, 4 correcciones de errores y mejoras
Actualización 92 de Java SE 8 2016-04-19 Seguridad y correcciones de errores de 8u91, además de 76 correcciones de errores adicionales; el ExitOnOutOfMemoryErrory CrashOnOutOfMemoryErrorbanderas se han introducido
Actualización 101 de Java SE 8 2016-07-19 Seguridad y corrección de errores de 8u92, más 9 correcciones de errores adicionales
Java SE 8 Update 102 2016-07-19 Seguridad y corrección de errores de 8u101, además de 118 correcciones de errores adicionales
Actualización 111 de Java SE 8 2016-10-18 7 correcciones de seguridad y 9 correcciones de errores
Actualización 112 de Java SE 8 2016-10-18 Funciones adicionales y 139 correcciones de errores sobre 8u111
Actualización 121 de Java SE 8 2017-01-17 3 funciones adicionales, 5 cambios y 11 correcciones de errores sobre 8u112.
Actualización 131 de Java SE 8 2017-04-18 4 cambios y 42 correcciones de errores (2 notables).
Actualización 141 de Java SE 8 2017-07-18 Característica adicional, 3 cambios y 12 correcciones de errores.
Actualización 144 de Java SE 8 2017-07-26 32 Correcciones de seguridad y corrección de errores de 8u141.
Actualización 151 de Java SE 8 2017-10-17 22 correcciones de seguridad, 2 notas, 1 revocación de certificado, 1 función nueva, 6 cambios y 24 correcciones de errores de 8u144.
Actualización 152 de Java SE 8 2017-10-17 Correcciones de seguridad, 1 característica nueva, 1 cambio y 238 correcciones de errores de 8u151 (1 notable).
Actualización 161 de Java SE 8 2018-01-16 21 correcciones de seguridad, 3 funciones nuevas, 9 cambios y 1 corrección de errores de 8u152.
Actualización 162 de Java SE 8 2018-01-16 Correcciones de seguridad, 63 correcciones de errores.
Actualización 171 de Java SE 8 2018-04-17 Correcciones de seguridad, corrección de errores.
Actualización 172 de Java SE 8 2018-04-17 Correcciones de seguridad, corrección de errores.
Actualización 181 de Java SE 8 2018-07-17 Correcciones de seguridad, corrección de errores.
Actualización 191 de Java SE 8 2018-10-16 Nuevas funciones, cambios, correcciones de errores, correcciones de seguridad.
Actualización 192 de Java SE 8 2018-10-16 Nuevas funciones, cambios, corrección de errores.
Actualización 201 de Java SE 8 2019-01-15 Nuevas funciones, cambios, corrección de errores.
Actualización 202 de Java SE 8 2019-01-15 Nuevas funciones, cambios, corrección de errores.
Actualización 211 de Java SE 8 2019-04-16 Nuevas funciones, cambios, corrección de errores. Actualización de licencia .
Actualización 212 de Java SE 8 2019-04-16 Nuevas funciones (por ejemplo, 5 símbolos de moneda, incluidos Bitcoin y "New Japanese Era Name Reiwa "), cambios, corrección de errores. Actualización de licencia .
Actualización 221 de Java SE 8 2019-07-16 Nuevas funciones, cambios, corrección de errores.
Actualización 231 de Java SE 8 2019-10-15 Nuevas funciones, cambios, correcciones de errores y 18 correcciones de seguridad.
Actualización 241 de Java SE 8 2020-01-14 Nuevas funciones, cambios, corrección de errores.
Actualización 251 de Java SE 8 2020-04-14 Nuevas funciones, cambios, corrección de errores. La última versión que se demostró que funcionaba en Windows XP de forma no oficial.
Actualización 261 de Java SE 8 14 de julio de 2020 Nuevas funciones, cambios, corrección de errores.
Actualización 271 de Java SE 8 2020-10-20 Nuevas funciones, cambios, corrección de errores.
Actualización de Java SE 8 281 2021-01-19 Nuevas funciones, cambios, corrección de errores.
Actualización 291 de Java SE 8 2021-04-20 Nuevas funciones, cambios, corrección de errores.
Actualización 301 de Java SE 8 2021-07-20 Nuevas funciones, cambios, corrección de errores.

Java SE 9

Java SE 9
Liberado 21 de septiembre de 2017 ; Hace 4 años ( 21 de septiembre de 2017 )
No. de PEC 9

Java SE 9 estuvo disponible el 21 de septiembre de 2017, debido a la controvertida aceptación de la implementación actual de Project Jigsaw por parte del Comité Ejecutivo de Java, lo que llevó a Oracle a solucionar algunos problemas e inquietudes abiertas, y a refinar algunas cuestiones técnicas críticas. En los últimos días de junio de 2017, Java Community Process expresó un consenso casi unánime sobre el esquema del sistema modular propuesto.

La primera versión candidata a la versión de Java 9 se lanzó el 9 de agosto de 2017. La primera versión estable de Java 9 fue el 21 de septiembre de 2017.

Historia

En JavaOne 2011, Oracle discutió las características que esperaban lanzar para Java 9 en 2016. Java 9 debería incluir un mejor soporte para montones de varios gigabytes, una mejor integración de código nativo, un recolector de basura predeterminado diferente ( G1 , para "tiempos de respuesta más cortos") y una JVM de autoajuste . A principios de 2016, el lanzamiento de Java 9 se reprogramó para marzo de 2017 y luego se pospuso cuatro meses más hasta julio de 2017.

Actualizaciones de Java 9

Liberación Fecha de lanzamiento Reflejos
Java SE 9 2017-09-21 Versión inicial
Java SE 9.0.1 2017-10-17 Correcciones de seguridad y correcciones de errores críticos de octubre de 2017
Java SE 9.0.4 2018-01-16 Lanzamiento final para JDK 9; Correcciones de seguridad y correcciones de errores críticos de enero de 2018

Java SE 10

Java SE 10
Liberado 20 de marzo de 2018 ; hace 3 años ( 20/03/2018 )
No. de PEC 12

OpenJDK 10 se lanzó el 20 de marzo de 2018, con doce nuevas funciones confirmadas. Entre estas características estaban:

El primero de estos JEP 286 Inferencia de tipo de variable local , permite que la varpalabra clave se utilice para variables locales con el tipo real calculado por el compilador. Entonces podemos hacer:

var list = new ArrayList<String>(); // infers ArrayList<String>
var stream = list.stream();         // infers Stream<String>

Actualizaciones de Java 10

Liberación Fecha de lanzamiento Reflejos
Java SE 10 2018-03-20 Versión inicial
Java SE 10.0.1 2018-04-17 Correcciones de seguridad, 5 correcciones de errores
Java SE 10.0.2 2018-07-17 Versión final para JDK 10. Correcciones de seguridad, 7 correcciones de errores

Java SE 11

Java SE 11
Versión LTS
Liberado 25 de septiembre de 2018 ; hace 3 años ( 25 de septiembre de 2018 )
No. de PEC 17

JDK 11 se lanzó el 25 de septiembre de 2018 y la versión está actualmente abierta para correcciones de errores. Ofrece LTS o soporte a largo plazo. Entre otras, Java 11 incluye una serie de características nuevas, como:

Se eliminaron varias funciones de versiones anteriores; en particular, los subprogramas de Java y Java Web Start ya no están disponibles. Los módulos JavaFX , Java EE y CORBA se han eliminado de JDK.

Actualizaciones de Java 11

Tabla de actualizaciones de Java 11
Liberación Fecha de lanzamiento Reflejos
Java SE 11 2018-09-25 Versión inicial
Java SE 11.0.1 2018-10-16 Seguridad y corrección de errores
Java SE 11.0.2 2019-01-15 Seguridad y corrección de errores
Java SE 11.0.3 2019-04-16 Nuevas funciones, seguridad y corrección de errores
Java SE 11.0.4 2019-07-16 Nuevas funciones, seguridad y corrección de errores;

La detección del sistema operativo Windows HotSpot identifica correctamente Windows Server 2019

Java SE 11.0.5 2019-10-15 Nuevas funciones, seguridad y corrección de errores
Java SE 11.0.6 2020-01-14 Nuevas funciones, seguridad y corrección de errores
Java SE 11.0.7 2020-04-14 Nuevas funciones, seguridad y corrección de errores
Java SE 11.0.8 14 de julio de 2020 Nuevas funciones, seguridad y corrección de errores
Java SE 11.0.9 2020-10-20 Nuevas funciones, seguridad y corrección de errores
Java SE 11.0.10 2021-01-19 Nuevas funciones, seguridad y corrección de errores
Java SE 11.0.11 2021-04-20 Nuevas funciones, seguridad y corrección de errores
Java SE 11.0.12 2021-07-20 Nuevas funciones, seguridad y corrección de errores

Java SE 12

Java SE 12
Liberado 19 de marzo de 2019 ; Hace 2 años ( 2019-03-19 )
No. de PEC 8
Funciones de vista previa Declaraciones de cambio mejoradas

JDK 12 se lanzó el 19 de marzo de 2019. Entre otras, Java 12 incluye una serie de características nuevas, como:

La función de vista previa Jep 325 amplía la switchdeclaración para que también se pueda usar como una expresión y agrega una nueva forma de etiqueta de caso donde el lado derecho es una expresión. No se necesita ninguna declaración de ruptura. Para expresiones complejas yieldse puede usar una declaración. Esto se convierte en estándar en Java SE 14.

int ndays = switch(month) {
    case JAN, MAR, MAY, JUL, AUG, OCT, DEC -> 31;
    case APR, JUN, SEP, NOV -> 30;
    case FEB -> {
        if (year % 400 == 0) yield 29;
        else if (year % 100 == 0) yield 28;
        else if (year % 4 == 0) yield 29;
        else yield 28; }
};

Actualizaciones de Java 12

Liberación Fecha de lanzamiento Reflejos
Java SE 12 2019-03-19 Versión inicial
Java SE 12.0.1 2019-04-16 Nuevas correcciones de seguridad y nombres de la era japonesa
Java SE 12.0.2 2019-07-16 Se eliminaron algunos certificados de CA raíz .

Java SE 13

Java SE 13
Liberado 17 de septiembre de 2019 ; Hace 2 años ( 17 de septiembre de 2019 )
No. de PEC 5
Funciones de vista previa Declaraciones de cambio mejoradas , bloques de texto

JDK 13 se lanzó el 17 de septiembre de 2019. Java 13 incluye las siguientes características nuevas, así como "cientos de pequeñas mejoras y miles de correcciones de errores".

Los bloques de texto JEP 355 permiten literales de cadena de varias líneas:

String html = """
              <HTML lang="en">
                  <body>
                      <p>Hello, world</p>
                  </body>
              </html>
              """;

Actualizaciones de Java 13

Liberación Fecha de lanzamiento Reflejos
Java SE 13 2019-09-17 Versión de disponibilidad general
Java SE 13.0.1 2019-10-15 Seguridad y corrección de errores
Java SE 13.0.2 2020-01-14 Seguridad y corrección de errores

Java SE 14

Java SE 14
Liberado 17 de marzo de 2020 ; Hace 18 meses ( 2020-03-17 )
No. de PEC dieciséis
Características notables NullPointerExceptions útiles , declaraciones de cambio mejoradas
Mudanzas notables Eliminar el recolector de basura Concurrent Mark Sweep
Funciones de vista previa Coincidencia de patrones, por ejemplo , registros , bloques de texto
Funciones de incubación jpackager, acceso a memoria externa

JDK 14 se lanzó el 17 de marzo de 2020. Java 14 incluye las siguientes características nuevas, así como "cientos de pequeñas mejoras y miles de correcciones de errores".

JEP 305, Pattern Matching, por ejemplo, simplifica el caso común de que una instanceofprueba sea seguida inmediatamente por un molde, reemplazando

if (obj instanceof String) {
    String s = (String) obj;
    System.out.println( s.length() );
}

con

if (obj instanceof String s) {
    System.out.println( s.length() );
}

JEP 359 Records permite la creación sencilla de clases simples e inmutables similares a Tuplas .

record Point(int x, int y) { }
Point p = new Point(3,4);
System.out.println( p.x() );

Actualizaciones de Java 14

Liberación Fecha de lanzamiento Reflejos
Java SE 14 2020-03-17 Versión de disponibilidad general
Java SE 14.0.1 2020-04-14 Seguridad y corrección de errores
Java SE 14.0.2 14 de julio de 2020 Seguridad y corrección de errores

Java SE 15

Java SE 15
Liberado 15 de septiembre de 2020 ; Hace 13 meses ( 15 de septiembre de 2020 )
No. de PEC 14
Características notables Clases ocultas, ZGC ( recolector de basura ), Shenandoah (recolector de basura), bloques de texto
Mudanzas notables Motor JavaScript, puertos Solaris y SPARC
Funciones de vista previa Clases selladas , la coincidencia de patrones de instanceof , registros
Funciones de incubación Acceso a memoria externa

JDK 15 se lanzó el 15 de septiembre de 2020. Java 15 agrega, por ejemplo, soporte para literales de cadenas de varias líneas (también conocidos como bloques de texto). Los recolectores de basura Shenandoah y Z (este último a veces abreviado como ZGC) están ahora listos para su uso en producción (es decir, ya no están marcados como experimentales). La compatibilidad con el sistema operativo Solaris de Oracle (y las CPU SPARC) se elimina (aunque todavía está disponible en, por ejemplo, Java 11). Se elimina el motor JavaScript Nashorn. También se eliminaron algunos certificados de CA raíz .

JEP 360 Sealed Classes agrega clases selladas e interfaces que restringen qué otras clases o interfaces pueden extenderlas o implementarlas. Solo las clases especificadas en una permitscláusula pueden extender la clase o interfaz.

package com.example.geometry;

public abstract sealed class Shape
    permits Circle, Rectangle, Square {...}

Junto con los registros, las clases selladas son tipos de datos algebraicos , los registros son tipos de productos y las clases selladas son tipos de suma . Funcionan bien con otras características recientes como registros, expresiones de cambio y coincidencia de patrones, por ejemplo. Todos ellos forman parte de un sistema para "Coincidencia de patrones en Java", discutido por primera vez por Gavin Bierman y Brian Goetz , en septiembre de 2018.

Actualizaciones de Java 15

Liberación Fecha de lanzamiento Reflejos
Java SE 15 15 de septiembre de 2020 Versión de disponibilidad general
Java SE 15.0.1 2020-10-20 Seguridad y corrección de errores
Java SE 15.0.2 2021-01-19 Seguridad y corrección de errores

Java SE 16

Java SE 16
Liberado 16 de marzo de 2021 ; hace 6 meses ( 2021-03-16 )
No. de PEC 17
Características notables Puerto Windows / AArch64, jpackager, coincidencia de patrones , por ejemplo , registros
Funciones de vista previa Clases selladas
Funciones de incubación Vinculador externo , acceso a memoria externa

JDK 16 se lanzó el 16 de marzo de 2021. Java 16 elimina las opciones de compilación Ahead-of-Time (y Graal JIT ). La implementación de Java en sí estaba y todavía está escrita en C ++ , mientras que a partir de Java 16, se permite C ++ 14 más reciente (pero aún no, por ejemplo, C ++ 17 o C ++ 20 ). El código también se movió a GitHub (eliminando el sistema de control de fuente Mercurial ).

Actualizaciones de Java 16

Liberación Fecha de lanzamiento Reflejos
Java SE 16 2021-03-16 Versión de disponibilidad general
Java SE 16.0.1 2021-04-20 Actualización de la base de datos de la zona horaria, corrección de errores y actualizaciones de seguridad
Java SE 16.0.2 2021-07-20 Seguridad y corrección de errores

Java SE 17

Java SE 17
Versión LTS
Liberado 14 de septiembre de 2021 ; Hace 31 dias ( 14 de septiembre de 2021 )
No. de PEC 14
Características notables Puerto macOS / AArch64, clases selladas
Mudanzas notables Compilador AOT , activación RMI
Funciones de vista previa Cambiar patrón de coincidencia
Funciones de incubación API de vector, función externa y API de memoria


JDK 17 es la versión actual de soporte a largo plazo (LTS) desde septiembre de 2021. Java 17 es la segunda versión de soporte a largo plazo (LTS) desde que se cambió a la nueva cadencia de lanzamiento de 6 meses (la primera es Java 11).

Actualizaciones de Java 17

Liberación Fecha de lanzamiento Reflejos
Java SE 17 2021-09-14 Versión de disponibilidad general: soporte a largo plazo

Java SE 18

Java SE 18
Liberado Marzo 2022 ( 2022-03 )
No. de PEC TBC
Características notables TBC
Mudanzas notables TBC
Funciones de vista previa TBC
Funciones de incubación TBC


JDK 18 se encuentra ahora en desarrollo activo, que saldrá en marzo de 2022 si continúan los ciclos de lanzamiento actuales de 6 meses.

Actualizaciones de Java 18

Liberación Fecha de lanzamiento Reflejos
Última compilación 2022-03-xx Por confirmar Compilaciones de acceso anticipado: compilación 17 (30 de septiembre de 2021)

Funciones futuras

  • Proyecto Valhalla : Tipos de valor , objetos sin identidad pero con una distribución de memoria eficiente.
  • Proyecto Panamá : Interoperabilidad mejorada con código nativo , para permitir que el código fuente de Java llame a funciones y use tipos de datos de otros lenguajes, de una manera que sea más fácil y tenga mejor desempeño que en la actualidad.
  • Project Loom : subprocesos virtuales , una alternativa liviana programada en modo de usuario a los subprocesos administrados por el sistema operativo estándar. Los subprocesos virtuales se asignan a los subprocesos del sistema operativo en una relación de varios a varios, en contraste con la relación de varios a uno de la implementación original de subprocesos verdes en las primeras versiones de Java.

Implementaciones

La plataforma Java con soporte oficial , desarrollada por primera vez en Sun y ahora administrada por Oracle, es Java SE . Lanzamientos basados ​​en el proyecto OpenJDK , un proyecto gratuito y de código abierto con un modelo de desarrollo abierto . Sin embargo, existen otras implementaciones de Java, en parte debido a la historia temprana de Java como software propietario . Por el contrario, algunas implementaciones se crearon para ofrecer algunos beneficios sobre la implementación estándar, a menudo como resultado de algún área de investigación académica o patrocinada por empresas. Muchas distribuciones de Linux incluyen compilaciones de OpenJDK a través del proyecto IcedTea iniciado por Red Hat , que proporciona un entorno de compilación e integración más sencillo .

Visual J ++ y Microsoft Java Virtual Machine se crearon como implementaciones incompatibles. Después de la demanda de Sun v. Microsoft , Microsoft la abandonó y comenzó a trabajar en la plataforma .NET . En 2021, Microsoft comenzó a distribuir "Microsoft Build of OpenJDK" compatible para Java 11 primero y luego también para Java 17. Sus compilaciones son compatibles con Windows, pero también con Linux y macOS .

Hay disponibles otras implementaciones patentadas de Java, como Zing de Azul ; Además, Azul ofrece compilaciones OpenJDK de código abierto certificadas bajo el nombre de Zulu.

Antes del lanzamiento de OpenJDK, mientras que la implementación de Sun todavía era propietaria, el proyecto GNU Classpath se creó para proporcionar una implementación gratuita y de código abierto de la plataforma Java. Desde el lanzamiento de JDK 7, cuando OpenJDK se convirtió en la implementación de referencia oficial, la motivación original para el proyecto GNU Classpath desapareció casi por completo, y su último lanzamiento fue en 2012.

El proyecto Apache Harmony se inició poco antes del lanzamiento de OpenJDK. Después del lanzamiento del código fuente inicial de Sun, el proyecto Harmony continuó, trabajando para proporcionar una implementación bajo una licencia laxa , en contraste con la licencia protectora elegida para OpenJDK. Más tarde, Google desarrolló Android y lo lanzó bajo una licencia laxa. Android incorporó partes del proyecto Harmony, complementado con ART y la propia máquina virtual Dalvik de Google . Apache Harmony se ha retirado desde entonces y Google ha cambiado sus componentes Harmony por otros equivalentes de OpenJDK.

Tanto Jikes como Jikes RVM son proyectos de investigación de código abierto que desarrolló IBM.

Existen varias otras implementaciones que comenzaron como software propietario, pero ahora son de código abierto. IBM desarrolló inicialmente OpenJ9 como el J9 propietario, pero desde entonces ha vuelto a otorgar la licencia del proyecto y lo ha donado a la Fundación Eclipse . JRockit es una implementación propietaria que fue adquirida por Oracle e incorporada en versiones posteriores de OpenJDK.

Referencias

enlaces externos