javagcj

JDK, JRE, Java: Version Confusion


(Note: this questions and its answers are from 2011 and show how the world was at that time.)


Although I'm not a real Java developer (yet), I feel like I should know this by now, but I'm still very confused. My question has two parts:

  1. What is the difference between the so-called (as I've seen it) "Sun JDK", OpenJDK, and GCJ?

  2. At various times, I've seen each of the following thrown around, making it very confusing to understand which version numbers actually apply to what. Can someone please help me sort this out?

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

Note: I do understand the difference between the JDK (Java Development Kit) and the Java Runtime Environment. I'm not totally clear on the difference between the JRE and JVM however, although I know what the JVM is/does.


Solution

    1. Sun JDK is made by Sun, OpenJDK is a competing open source implementation. GCJ is the GNU java compiler.
    2. Java 6 = Java 1.6 and JDK 6 = JDK 1.6

    Details item 1 http://en.wikipedia.org/wiki/OpenJDK https://stackoverflow.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

    How does the GCJ relate to the Sun JDK/OpenJDK? There is no direct relation that I am aware of. GCJ is a separate project. What are the merits of using one JDK over the other? Licensing issues can occur if you redistribute the Sun JDK. Personally I put more trust in the Sun JDK, because of its stability. Isn't OpenJDK a Sun project? Yes and no. It's a community project.