Java Language
Ediciones, versiones, lanzamientos y distribuciones de Java
Buscar..
Diferencias entre las distribuciones Java SE JRE o Java SE JDK
Las versiones de Sun / Oracle de Java SE vienen en dos formas: JRE y JDK. En términos simples, los JRE admiten la ejecución de aplicaciones Java y los JDK también admiten el desarrollo de Java.
Java Runtime Environment
Las distribuciones de Java Runtime Environment o JRE consisten en el conjunto de bibliotecas y herramientas necesarias para ejecutar y administrar aplicaciones Java. Las herramientas en un JRE moderno típico incluyen:
- El comando
java
para ejecutar un programa Java en una JVM (Java Virtual Machine) - El comando
jjs
para ejecutar el motor de Javascript de Nashorn. - El comando
keytool
para manipular los almacenes de claves de Java. - El comando
policytool
para editar las políticas de seguridad de sandbox. - Las herramientas
pack200
yunpack200
para empaquetar y desempaquetar el archivo "pack200" para el despliegue web. - Los
orbd
,rmid
,rmiregistry
ytnameserv
que admiten aplicaciones Java CORBA y RMI.
Los instaladores de "Desktop JRE" incluyen un complemento de Java adecuado para algunos navegadores web. Esto se deja deliberadamente fuera de "Server JRE" installers.linux syscall read benchmarku
A partir de la actualización 6 de Java 7, los instaladores de JRE han incluido JavaFX (versión 2.2 o posterior).
Kit de desarrollo de Java
Un kit de desarrollo de Java o una distribución de JDK incluye las herramientas JRE y herramientas adicionales para desarrollar software de Java. Las herramientas adicionales típicamente incluyen:
- El comando
javac
, que compila el código fuente de Java (".java") en archivos de código de bytes (".class"). - Las herramientas para crear archivos JAR como
jar
yjarsigner
- Herramientas de desarrollo tales como:
-
appletviewer
para ejecutar applets -
idlj
el IDL CORBA al compilador de Java -
javah
el generador dejavah
JNI -
native2ascii
para la conversión denative2ascii
de caracteres del código fuente de Java -
schemagen
el generador de esquemas de Java a XML (parte de JAXB) -
serialver
generar la cadena de versión de Java Object Serialization. -
wsgen
herramientas de soportewsgen
ywsimport
para JAX-WS
-
- Herramientas de diagnóstico tales como:
-
jdb
el depurador de Java básico -
jmap
yjhat
para descargar y analizar un montón de Java. -
jstack
para obtener un volcado de pila de hilos. -
javap
para examinar archivos ".class".
-
- Gestión de aplicaciones y herramientas de monitoreo tales como:
-
jconsole
una consola de gestión, -
jstat
,jstatd
,jinfo
yjps
para monitoreo de aplicaciones
-
Una instalación típica de Sun / Oracle JDK también incluye un archivo ZIP con el código fuente de las bibliotecas de Java. Antes de Java 6, este era el único código fuente de Java disponible públicamente.
Desde Java 6 en adelante, el código fuente completo de OpenJDK está disponible para su descarga desde el sitio de OpenJDK. Normalmente no se incluye en los paquetes JDK (Linux), pero está disponible como un paquete separado.
¿Cuál es la diferencia entre Oracle Hotspot y OpenJDK?
Ortogonal a la dicotomía JRE versus JDK, hay dos tipos de versión de Java que están ampliamente disponibles:
- Las versiones de Oracle Hotspot son las que se descargan de los sitios de descarga de Oracle.
- Las versiones de OpenJDK son las que se crean (normalmente por proveedores de terceros) a partir de los repositorios de origen de OpenJDK.
En términos funcionales, hay poca diferencia entre una versión de Hotspot y una versión de OpenJDK. Hay algunas características "empresariales" adicionales en Hotspot que los clientes de Oracle (de pago) de Java pueden habilitar, pero aparte de eso, la misma tecnología está presente tanto en Hotspot como en OpenJDK.
Otra ventaja de Hotspot sobre OpenJDK es que las versiones de parches para Hotspot tienden a estar disponibles un poco antes. Esto también depende de cuán ágil sea su proveedor de OpenJDK; por ejemplo, cuánto tiempo tarda el equipo de compilación de una distribución de Linux en preparar y realizar un control de calidad en una nueva compilación de OpenJDK y colocarla en sus repositorios públicos.
La otra cara es que las versiones de Hotspot no están disponibles en los repositorios de paquetes para la mayoría de las distribuciones de Linux. Esto significa que mantener su software Java actualizado en una máquina con Linux generalmente es más trabajo si usa Hotspot.
Diferencias entre Java EE, Java SE, Java ME y JavaFX
La tecnología Java es tanto un lenguaje de programación como una plataforma. El lenguaje de programación Java es un lenguaje de alto nivel orientado a objetos que tiene una sintaxis y un estilo particulares. Una plataforma Java es un entorno particular en el que se ejecutan las aplicaciones de lenguaje de programación Java.
Hay varias plataformas de Java. Muchos desarrolladores, incluso los desarrolladores de lenguajes de programación Java de larga data, no entienden cómo las diferentes plataformas se relacionan entre sí.
Las plataformas de lenguaje de programación Java
Hay cuatro plataformas del lenguaje de programación Java:
Plataforma Java, Edición Estándar (Java SE)
Plataforma Java, Edición Enterprise (Java EE)
Plataforma Java, Micro Edition (Java ME)
Java FX
Todas las plataformas de Java consisten en una Máquina Virtual de Java (VM) y una interfaz de programación de aplicaciones (API). La máquina virtual de Java es un programa, para una plataforma de hardware y software en particular, que ejecuta aplicaciones de tecnología Java. Una API es una colección de componentes de software que puede utilizar para crear otros componentes de software o aplicaciones. Cada plataforma Java proporciona una máquina virtual y una API, y esto permite que las aplicaciones escritas para esa plataforma se ejecuten en cualquier sistema compatible con todas las ventajas del lenguaje de programación Java: independencia de la plataforma, potencia, estabilidad, facilidad de desarrollo y seguridad.
Java SE
Cuando la mayoría de la gente piensa en el lenguaje de programación Java, piensa en la API de Java SE. La API de Java SE proporciona la funcionalidad principal del lenguaje de programación Java. Define todo, desde los tipos y objetos básicos del lenguaje de programación Java hasta las clases de alto nivel que se utilizan para redes, seguridad, acceso a bases de datos, desarrollo de interfaz gráfica de usuario (GUI) y análisis de XML.
Además de la API central, la plataforma Java SE consta de una máquina virtual, herramientas de desarrollo, tecnologías de implementación y otras bibliotecas de clase y kits de herramientas que se utilizan comúnmente en las aplicaciones de tecnología Java.
Java EE
La plataforma Java EE está construida sobre la plataforma Java SE. La plataforma Java EE proporciona una API y un entorno de tiempo de ejecución para desarrollar y ejecutar aplicaciones de red a gran escala, de múltiples niveles, escalables, confiables y seguras.
Java ME
La plataforma Java ME proporciona una API y una máquina virtual de tamaño reducido para ejecutar aplicaciones de lenguaje de programación Java en dispositivos pequeños, como teléfonos móviles. La API es un subconjunto de la API de Java SE, junto con bibliotecas de clases especiales útiles para el desarrollo de aplicaciones de dispositivos pequeños. Las aplicaciones Java ME son a menudo clientes de los servicios de la plataforma Java EE.
Java FX
La tecnología Java FX es una plataforma para crear aplicaciones de Internet enriquecidas escritas en Java FX ScriptTM. Java FX Script es un lenguaje declarativo de tipo estático que se compila en el bytecode de la tecnología Java, que luego se puede ejecutar en una máquina virtual Java. Las aplicaciones escritas para la plataforma Java FX pueden incluir y vincular clases de lenguaje de programación Java y pueden ser clientes de los servicios de la plataforma Java EE.
- Tomado de la documentación de Oracle
Versiones de Java SE
Historial de versiones de Java SE
La siguiente tabla proporciona la línea de tiempo para las principales versiones significativas de la plataforma Java SE.
Java SE versión 1 | Nombre clave | Fin de la vida (libre 2 ) | Fecha de lanzamiento |
---|---|---|---|
Java SE 9 (acceso temprano) | Ninguna | futuro | 2017-07-27 (estimado) |
Java SE 8 | Ninguna | futuro | 2014-03-18 |
Java SE 7 | Delfín | 2015-04-14 | 2011-07-28 |
Java SE 6 | Mustango | 2013-04-16 | 2006-12-23 |
Java SE 5 | Tigre | 2009-11-04 | 2004-10-04 |
Java SE 1.4.2 | Mantis | antes del 2009-11-04 | 2003-06-26 |
Java SE 1.4.1 | Tolva / Saltamontes | antes del 2009-11-04 | 2002-09-16 |
Java SE 1.4 | Esmerejón | antes del 2009-11-04 | 2002-02-06 |
Java SE 1.3.1 | Mariquita | antes del 2009-11-04 | 2001-05-17 |
Java SE 1.3 | Cernícalo | antes del 2009-11-04 | 2000-05-08 |
Java SE 1.2 | Patio de recreo | antes del 2009-11-04 | 1998-12-08 |
Java SE 1.1 | Bengala | antes del 2009-11-04 | 1997-02-19 |
Java SE 1.0 | Roble | antes del 2009-11-04 | 1996-01-21 |
Notas al pie:
Los enlaces son para copias en línea de la documentación de las versiones respectivas en el sitio web de Oracle. La documentación de muchas versiones anteriores ya no está en línea, aunque normalmente se puede descargar desde los Archivos Java de Oracle.
La mayoría de las versiones históricas de Java SE han pasado sus fechas oficiales de "fin de vida". Cuando una versión de Java supera este hito, Oracle deja de proporcionarle actualizaciones gratuitas. Las actualizaciones todavía están disponibles para los clientes con contratos de soporte.
Fuente:
- Fechas de lanzamiento de JDK por Roedy Green de Canadian Mind Products
Aspectos destacados de la versión de Java SE
Versión de Java SE | Reflejos |
---|---|
Java SE 8 | Expresiones lambda y corrientes inspiradas en MapReduce. El motor de Javascript de Nashorn. Anotaciones sobre tipos y anotaciones repetidas. Extensiones aritméticas sin firmar. Nuevas API de fecha y hora. Bibliotecas JNI enlazadas estáticamente. Lanzador de JavaFX. Eliminación de PermGen. |
Java SE 7 | Conmutadores de cadenas, try-with-resource , el diamante ( <> ), mejoras literales numéricas y mejoras de manejo / reingreso de excepciones. Mejoras en la biblioteca de concurrencia. Soporte mejorado para sistemas de archivos nativos. Timsort. ECC algoritmos criptográficos. Compatibilidad con gráficos 2D mejorados (GPU). Anotaciones enchufables. |
Java SE 6 | Mejoras significativas en el rendimiento de la plataforma JVM y Swing. Lenguaje de scripting API y motor Javascript de Mozilla Rhino. JDBC 4.0. API del compilador. JAXB 2.0. Soporte de servicios web (JAX-WS) |
Java SE 5 | Genéricos, anotaciones, boxeo automático, clases de enum , varargs, mejorados for bucles e importaciones estáticas. Especificación del modelo de memoria Java. Swing y mejoras de RMI. Adición del paquete java.util.concurrent.* Y el Scanner . |
Java SE 1.4 | La palabra clave de assert . Clases de expresiones regulares. Encadenamiento de excepciones. API de NIO: E / S, Buffer y Channel sin bloqueo. java.util.logging.* API. API de E / S de imágenes. XML integrado y XSLT (JAXP). Seguridad integrada y criptografía (JCE, JSSE, JAAS). Java Web Start integrado. API de preferencias. |
Java SE 1.3 | HotSpot JVM incluido. Integración CORBA / RMI. Nombre de Java y la interfaz de directorio (JNDI). Marco de depuración (JPDA). API de JavaSound. API de proxy. |
Java SE 1.2 | La palabra clave strictfp . Swing APIs. El plugin de Java (para navegadores web). Interoperabilidad CORBA. Marco de colecciones. |
Java SE 1.1 | Clases de interior. Reflexión. JDBC. RMI. Unicode / streams de caracteres. Apoyo a la internacionalización. Revisión del modelo de evento AWT. JavaBeans. |
Fuente:
- Wikipedia: historia de la versión de Java