Correlation between Java EE / J2EE to J2SE / JDK versions
Asked Answered
D

3

26

I was certain that I'll find a duplicate question or a satisfying answer, but I haven't.

What I'm looking for is the answer to these questions:

  • Is there an official correlation between Java EE / J2EE and J2SE / JDK versions?
  • If the answer is yes, where is it written?
  • If the answer is no, then why? and is there an unofficial version table (e.g. JDK 1.4 goes well with J2EE 1.3, JDK 1.5 goes well with J2EE 1.4, JDK 1.6 with Java EE 5 and so on)

I can think of a couple of reasons for the uncoupling, but can't seem to find a good reference source

Related questions:

Java SE vs Java EE, college and career

What is Java EE?

Detain answered 6/1, 2010 at 15:25 Comment(0)
D
22

Is there an official correlation between Java EE / J2EE and J2SE / JDK versions?

Sun may try to keep some kind of "correlation" to not confuse users and for marketing purpose but, AFAIK, no, there is no official correlation (and maintaining the pseudo synchronisation might become harder in the future as the JDK evolves faster than the Java EE specification).

UPDATE: I was wrong, there is actually a correlation (see below). But I still think that this might become a problem: Java 7 is scheduled for late 2010, will the expert group succeed to roll out Java EE 7 before Java 8 and Java 7 EOL?

If the answer is yes, where is it written?

Quoting the JSR 151: JavaTM 2 Platform, Enterprise Edition 1.4 (J2EE 1.4) Specification home page:

  • J2EE 1.4 is the Enterprise Edition of version 1.4 of the Java platform, and thus will be built on J2SE 1.4.

Quoting the JSR 244: Java(TM) Platform, Enterprise Edition 5 (Java EE 5) Specification home page:

  • Java EE 5 is the Enterprise Edition of version 5 of the Java platform, and thus will be built on J2SE 5.0.

Quoting the JSR 316: JavaTM Platform, Enterprise Edition 6 (Java EE 6) Specification home page:

  • Java EE 6 is the Enterprise Edition of version 6 of the Java platform, and thus will be built on Java SE 6.

Seriously, why do we have to go to the JCP website to find this (maybe I should have started there though)?

If the answer is no, then why?

Java Enterprise Edition is a specification, not an implementation. It might rely on specific features (like Java EE 5 and Java 5 generics) but the JDK version is actually dependent upon the implementation of the container you are using. See the Websphere example below. (This still applies, even after the big UPDATE above.)

and is there an unofficial version table (e.g. JDK 1.4 goes well with J2EE 1.3, JDK 1.5 goes well with J2EE 1.4, JDK 1.6 with Java EE 5 and so on)

As I said above, "goes well" doesn't really makes sense as this depends on the container you are using and containers might have different compatibility requirements (for example IBM WebSphere's J2EE 1.4 server may not work with JDK 5). So, I'd rather speak in terms of requirements.

The J2EE 1.4 SDK is bundled with JDK 5 but... J2EE 1.4 requires JDK 1.4 or later. Java EE 5 requires JDK 5 or later. Java EE 6 requires JDK 6 or later (JDK 5 is at its EOL for 2+ months now).

Dinorahdinosaur answered 6/1, 2010 at 19:58 Comment(4)
Thanks, the dependency is apparently what I was looking for. Is there an official requierment list from Sun?Detain
Actually, while looking for these official requirements, I realized the first part of my initial answer was not correct and made a big update that should answer your last question too.Dinorahdinosaur
Thanks for a great answer! I wish I could +1 more than onceDetain
>Java 7 is scheduled for late 2010, will the expert group succeed to roll out Java EE 7 before Java 8 and Java 7 EOL? - Seems like it. Java SE came out in July 2011, Java EE 7 is scheduled for April 2013. Java SE 8 is scheduled/expected in September 2013.Overhang
A
3

Java EE is a set of specifications and a reference implementation for those specs. A given version may happen to depend on language features present in some version of the JDK, or it may not.

You can think of Java EE the same way you think of any third-party framework or library for Java. There's no reason for the version numbers of Java EE and the JDK to have anything at all to do with each other.

Argyres answered 6/1, 2010 at 16:2 Comment(4)
But they do seem to magically correlate, very clearly in certified Application Servers. Also, they seem to be released (maybe due to marketing reasons) in the same time, and always abide to the +1 rule (e.g. J2EE version + 1 = JDK version) leaving philosophy aside, am I the only one seeing there is a de facto relation?Detain
My guess is that some pointy-headed Sun marketing doofus intends to "avoid confusion" by correlating version numbers.Argyres
Java EE specifications do target a specific Java SE release. For example, JSR 316 says: Java EE 6 is the Enterprise Edition of version 6 of the Java platform, and thus will be built on Java SE 6. Individual specs may still choose to be compatible with lower versions of Java SE, but never a higher version. Whether a Java EE implementation actually runs on a higher Java SE version that it was specced for depends on the implementation.Overhang
Java SE versions are supposed to be backwards compatible, so I think a Java EE implementation should always run on a higher Java SE version.Transcaucasia
M
2

Generally, Java Enterprise Editions come out after the JDK for the same versions.

Basically, for the past few editions, you've had these download packages:
JDK 5 with J2EE 4.
JDK 5 with Java EE 5.
JDK 6 with Java EE 5.
JDK 6 with Java EE 6 (currently only available from the Java EE page, the Java SE page still has JDK 6 with Java EE 5)

Note that these download packages actually include Sun's version of Java EE (Glassfish these days), which is different than Apache's version of Java EE (Tomcat/Geronimo) or IBM's version of Java EE (Websphere).

If you choose not to use Glassfish, you can download just JDK6 and one of the other Java EE packages. As of right now, Glassfish is the only Java EE 6 product, as Java EE 6 just came out and it's the reference implementation.

Metronome answered 6/1, 2010 at 20:7 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.