versiones jdk change java openjdk gcj

change - JDK, JRE, Java: Version Confusion!



jdk version cmd (5)

  1. Básicamente, son implementaciones diferentes del mismo conjunto de estándares que describen cómo debería funcionar una Máquina Virtual Java.
  2. La versión de Java progresó de la manera normal de 1.0 a 1.4 cuando algún tipo inteligente de marketing tuvo la idea de llamar a la siguiente versión "Java 5" en lugar de 1.5, pero, por supuesto, esto solo causó confusión, lo que llevó a la 6 ( 1.6) serie y probablemente continuará por algún tiempo. Aunque no tengo idea de lo que podría ser JVM 11.0. (¿Estás seguro de que no es 1.1.0? Sé que es una posibilidad remota, pero quién sabe).

Y la diferencia entre la JVM y la JRE. Hablando estrictamente, la JVM es solo la máquina que interpreta el código de bytes de Java, mientras que un JRE también contiene todas las bibliotecas de clases estándar, archivos de recursos, dll (s) y así sucesivamente.

Aunque no soy un verdadero desarrollador de Java (todavía), siento que ya debería saberlo, pero todavía estoy muy confundido. Mi pregunta tiene dos partes:

  1. ¿Cuál es la diferencia entre el llamado (como lo he visto) "Sun JDK", OpenJDK y GCJ ?

  2. En varias ocasiones, he visto cada uno de los siguientes puntos, haciendo que sea muy confuso entender qué números de versión se aplican realmente a qué. ¿Puede alguien ayudarme por favor a resolver esto?

    • Java 6
    • Java 1.6
    • JDK 6
    • JDK 1.6
    • JRE 1.6
    • JVM 11.0

Nota: entiendo la diferencia entre el JDK (Java Development Kit) y el Java Runtime Environment. Sin embargo, no estoy del todo claro sobre la diferencia entre JRE y JVM, aunque sé qué es / hace la JVM.


  1. Sun JDK está hecho por Sun, OpenJDK es una implementación de código abierto de la competencia. GCJ es el compilador java de GNU.
  2. Java 6 = Java 1.6 y JDK 6 = JDK 1.6

Detalles del artículo 1 http://en.wikipedia.org/wiki/OpenJDK https://.com/questions/1977238/why-should-i-use-the-sun-jdk-over-the-openjdk-or-vice-versa

http://en.wikipedia.org/wiki/GNU_Compiler_for_Java

¿Cómo se relaciona el GCJ con el Sun JDK / OpenJDK? No hay una relación directa que yo sepa. GCJ es un proyecto separado. ¿Cuáles son los méritos de usar un JDK sobre el otro? Pueden producirse problemas de licencia si redistribuye Sun JDK. Personalmente confío más en el Sun JDK, debido a su estabilidad. ¿No es OpenJDK un proyecto de Sun? Si y no. Es un proyecto comunitario.


Cuidado, GCJ no es una JVM certificada. Es el proyecto GNU Classpath para Java que tiene compatibilidad parcial con Java bajo una licencia GNU. Debe alejarse de él a menos que esté seguro de que satisface sus necesidades y tiene una razón por la que no puede usar otra implementación Java completa.


Java 6 y Java 1.6 son los mismos. Originalmente, Java se llamaba Java 1.X, pero a medida que pasaba el tiempo, el marketing de Sun descubrió que sería mejor señalar las mejoras significativas que se realizarían si eliminaban el "1". parte. La primera versión que lo hizo fue Java 1.5, que se comercializó como Java 5.

JRE 6 es la distribución para el consumidor de Java 6. Es fácil de descargar desde http://java.com .

JDK 6 es la distribución para desarrolladores de Java 6. Contiene herramientas como un compilador y soporte para más culturas que el JRE predeterminado. Necesita descargarse desde http://javasoft.com .

JVM 11.0 es la versión del "intérprete" de Java dentro de Oracle JRE / JDK (otros proveedores usan números diferentes). Esto es similar a decir que Windows Vista es realmente Windows 6.0.6001.


Sun a lo largo de los años ha realizado algunos cambios en las convenciones de nomenclatura para su lenguaje de programación. Originalmente tenías jdk1.1 y así sucesivamente. En jdk1.2 decidieron cambiar esto a Java 2. Así que verás algunos libros antiguos sobre Java 2.

Luego, por alguna misteriosa razón, volvió a jdk1.3 y luego a jdk1.4. Cuando se lanzó jdk1.5 hicieron un esfuerzo consciente para cambiar los nombres nuevamente. Así que tuvimos Java 5. Ya que decidieron seguir con esto, tienen lo siguiente:

jdk1.5 = Java 5 jdk1.6 = Java 6 jdk1.7 = Java 7

y (tal vez) así sucesivamente.

Así que espero que eso explique esa parte. En su pregunta Java6 == Java 1.6 == JDK 6 == JDK 1.6.

En cuanto a JVM vs JRE. El JRE contiene la JVM, así como las bibliotecas de clases y cualquier otra herramienta necesaria para ejecutar su programa Java. La JVM es simplemente el programa que interpreta su código de byte y lo ejecuta en la máquina host.