Java EE / J2EE与J2SE / JDK版本之间的关联

时间:2010-01-06 15:25:45

标签: java-ee java

我确信我会找到一个重复的问题或一个令人满意的答案,但我没有。

我正在寻找的是这些问题的答案:

  • Java EE / J2EE和J2SE / JDK版本之间是否存在官方关联?
  • 如果答案是肯定的,它会写在哪里?
  • 如果答案是否定的,为什么呢?并且是否存在非官方版本表(例如,JDK 1.4适用于J2EE 1.3,JDK 1.5适用于J2EE 1.4,JDK 1.6适用于Java EE 5等等)

我可以想到解耦的几个原因,但似乎无法找到一个好的参考源

相关问题:

Java SE vs Java EE, college and career

What is Java EE?

3 个答案:

答案 0 :(得分:21)

  

Java EE / J2EE和J2SE / JDK版本之间是否存在官方关联?

Sun可能会尝试保持某种“关联”,以免混淆用户和营销目的,但是,AFAIK,没有,没有官方关联(并维持伪同步可能随着JDK的发展速度超过Java EE规范,将来会变得更难。

更新:我错了,实际上存在相关性(见下文)。但我仍然认为这可能会成为一个问题:Java 7计划在2010年底推出,专家组是否会成功在Java 8和Java 7 EOL之前推出Java EE 7?

  

如果答案是肯定的,那么它在哪里写的?

引用JSR 151: JavaTM 2 Platform, Enterprise Edition 1.4 (J2EE 1.4) Specification主页:

  
      
  • J2EE 1.4是Java平台1.4版的企业版,因此​​将构建在J2SE 1.4上。
  •   

引用JSR 244: Java(TM) Platform, Enterprise Edition 5 (Java EE 5) Specification主页:

  
      
  • Java EE 5是Java平台版本5的企业版,因此​​将构建在J2SE 5.0上。
  •   

引用JSR 316: JavaTM Platform, Enterprise Edition 6 (Java EE 6) Specification主页:

  
      
  • Java EE 6是Java平台版本6的企业版,因此​​将基于Java SE 6构建。
  •   

说真的,为什么我们必须去JCP网站找到这个(也许我应该从那里开始)?

  

如果答案是否定的,为什么?

Java Enterprise Edition是一个规范,而不是一个实现。它可能依赖于特定功能(如Java EE 5和Java 5泛型),但 JDK版本实际上取决于您正在使用的容器的实现。请参阅下面的Websphere示例。 (即使在上面的 UPDATE 之后,这仍然适用。)

  

并且是否存在非官方版本表(例如,JDK 1.4适用于J2EE 1.3,JDK 1.5适用于J2EE 1.4,JDK 1.6适用于Java EE 5等等)

正如我上面所说,“顺利”并没有真正意义,因为这取决于您正在使用的容器,容器可能具有不同的兼容性要求(例如IBM WebSphere的J2EE 1.4服务器可能不适用于JDK 5)。所以,我宁愿在要求方面发言。

J2EE 1.4 SDK与JDK 5捆绑在一起但是...... J2EE 1.4需要JDK 1.4或更高版本。 Java EE 5需要JDK 5或更高版本。 Java EE 6需要JDK 6或更高版本(JDK 5现在已经在EOL工作了2个月以上)。

答案 1 :(得分:3)

Java EE是一组规范和这些规范的参考实现。给定版本可能恰好取决于某些版本的JDK中存在的语言功能,或者可能不会。

您可以像考虑Java的任何第三方框架或库一样考虑Java EE。没有理由让Java EE和JDK的版本号彼此有任何关系。

答案 2 :(得分:2)

通常,Java Enterprise Editions在JDK之后出现相同的版本。

基本上,在过去的几个版本中,您已经拥有了这些下载包:
JDK 5与J2EE 4.
带有Java EE 5的JDK 5 带有Java EE 5的JDK 6 带有Java EE 6的JDK 6(目前只能从Java EE页面获得,Java SE页面仍然具有带Java EE 5的JDK 6)

请注意,这些下载软件包实际上包含Sun的Java EE版本(Glassfish,最近),这与Apache的Java EE版本(Tomcat / Geronimo)或IBM的Java EE版本(Websphere)不同。

如果您选择不使用Glassfish,则只需下载JDK6和其他Java EE软件包。截至目前,Glassfish是唯一的Java EE 6产品,因为Java EE 6刚刚问世,它就是参考实现。