Originally posted by Paul O'Neill:
Why are some jres called j2sre... and other simply jre...?
Thanks!
You are mixing up a couple of acronyms. Possible ones JDK, JSE, JRE, J2SE, J2RE, and J2SDK. Unfortunately, there have been a number of name changes to Java in its history. The Wikipedia
Java Version History article shows the various names, and discusses some of the name changes.
Here is the story of
The naming of Java...
When originally released as version 1.0, Java was known as the "Java Development Kit" or JDK. And the runtime environment was known as "Java Runtime Environment", or JRE. There is also the term JVM, or java virtual machine. JRE and JVM are often used interchangeably in daily conversations. But there is a difference. We won't get into that in too much detail, but in a nutshell, the JVM is what runs the java bytecodes on a particular CPU/OS combo. The JRE is the JVM plus things such as the browser plug-in, java utility classes, security configurations, miscellaneous tools, etc.
OK, so far we have the Java 1.0 JDK & JRE. Version 1.1 of the JDK and JRE were then released. Then along comes the next version of Java and things start to get a little tricky.
The next version was developed as Java 1.2. All the internal version numbering (such as when you get the "java.version" system property) and all the documentation showed version 1.2. But for apparent marketing reasons, since there were significant changes between v1.1 and v1.2, the product was rebranded as Java 2 (even though the version number was 1.2). One source I read said this rebranding actually happened a few days after Java 1.2 was released. Not sure if that's true or not, but the Wikipedia article does say it was rebranded retrospectively. In addition to the change of "Java" to "Java 2", the term "Standard Edition" was introduced, and thus it was "Java 2 Standard Edition" or J2SE. This "Standard Edition" was added to distinguish it from the
J2EE (or "Java 2 Enterprise Edition" platform. (J2EE runs on top of J2SE and is superset of functionality and standards). And as if all that wasn't enough, the JDK (Java Development Kit) was renamed an SDK or Software Development kit.
So we now have the J2SDK and J2RE for J2SE. Acronym soup!
And so it remained for a while. Subsequent versions were released. The versioning system became as follows:
- Bug patches were released with an increased underscore number: 1.2.0 --> 1.2.0_01 --> 1.2.0_02
- Minor changes were released with an increased third decimal number: 1.2.0 --> 1.2.1 --> 1.2.2
- Major changes were released with an increased second decimal number: 1.2.2 --> 1.3.0 --> 1.4.0
- and the first digit never changed. All "Java 2" versions were 1.x versions. In essences, it was as if the second number was the major version number.
As a side note, during this time, even though the official name was the J2SDK, most developers, authors, and articles still called it the JDK.
After Java 1.4.2, the next version of Java was developed. Once again, its internal version number was made to follow the convention, and was made to be 1.5.0. Well at some point, Sun decided that it should be called Java 5.0. I am not sure whether this was a marketing thing, or simply an attempt to get the version numbers to where they should be. I've never found a definitive article on the subject (If anyone knows one, please post the URL.) So it was released as
"Java 2 Platform Standard Edition (J2SE) 5.0" with an internal version number of 1.5.0. At the same time, Sun caved into the "pressure" and called it the JDK again rather then the J2SDK. So we had the J2SE 5.0 JDK and JRE.
When bug patches were released, they were released as "Java 2 Platform Standard Edition (J2SE) 5.0 Update
x with an internal version number of 1.5.0_0
x.
Well at some point, someone must have noticed it was strange to have a version 5.0 of "Java 2" So when the next version came out, the "2" was dropped, and the product became "Java Standard Edition" or JSE rather than J2SE. And the ".0" was dropped from the number in the name. So the name because "Java Standard Edition (JSE) 6" (for 5, it was J2SE 5.0; notice the extra '.0'. And for 6 it was JSE 6). Like Java 5, bug patches add an "Update ]i]x[/i] to the name: "Java Standard Edition (JSE) 6 Update
x" and had an internal version of 1.6.0_0
x.
And that's where we are today.
So in summary, basically,
JSE == J2SE - the overall product
JDK == J2SDK == JSDK == SDK - the development kit to write java code; one part of JSEJRE == J2RE - the part of JSE to run code. [ July 30, 2008: Message edited by: Mark Vedder ]