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 y unpack200 para empaquetar y desempaquetar el archivo "pack200" para el despliegue web.
  • Los orbd , rmid , rmiregistry y tnameserv 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 y jarsigner
  • Herramientas de desarrollo tales como:
    • appletviewer para ejecutar applets
    • idlj el IDL CORBA al compilador de Java
    • javah el generador de javah JNI
    • native2ascii para la conversión de native2ascii 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 soporte wsgen y wsimport para JAX-WS
  • Herramientas de diagnóstico tales como:
    • jdb el depurador de Java básico
    • jmap y jhat 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 y jps 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.


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:

  1. 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.

  2. 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:

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:



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow