Jakarta ee JavaEE/J2EE与J2SE/JDK版本之间的相关性

Jakarta ee JavaEE/J2EE与J2SE/JDK版本之间的相关性,jakarta-ee,java,Jakarta Ee,Java,我确信我会找到一个重复的问题或令人满意的答案,但我没有 我想要的是这些问题的答案: JavaEE/J2EE和J2SE/JDK版本之间是否存在官方关联 如果答案是肯定的,写在哪里 如果答案是否定的,那么为什么呢?是否有一个非官方的版本表(例如JDK1.4与J2EE1.3配合良好,JDK1.5与J2EE1.4配合良好,JDK1.6与JavaEE5配合良好等等) 我可以想出几个原因来解释解偶联,但似乎找不到一个好的参考源 相关问题: Java EE是一组规范和这些规范的参考实现。给定的版本可能恰

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

我想要的是这些问题的答案:

  • JavaEE/J2EE和J2SE/JDK版本之间是否存在官方关联
  • 如果答案是肯定的,写在哪里
  • 如果答案是否定的,那么为什么呢?是否有一个非官方的版本表(例如JDK1.4与J2EE1.3配合良好,JDK1.5与J2EE1.4配合良好,JDK1.6与JavaEE5配合良好等等)
我可以想出几个原因来解释解偶联,但似乎找不到一个好的参考源

相关问题:


Java EE是一组规范和这些规范的参考实现。给定的版本可能恰好依赖于JDK某些版本中的语言特性,也可能不依赖

您可以像看待任何第三方Java框架或库一样看待JavaEE。javaee和JDK的版本号没有任何理由相互关联

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

Sun可能会尝试保持某种“相关性”,以避免混淆用户,并且出于营销目的,但是,恕我直言,,没有官方的相关性(而且,随着JDK的发展速度快于JavaEE规范,未来维护伪同步可能会变得更加困难)

更新:我错了,实际上有一个相关性(见下文)。但我仍然认为这可能会成为一个问题:Java7计划在2010年底推出,专家组能否在Java8和Java7EOL之前成功推出JavaEE7

如果答案是肯定的,写在哪里

引用主页:

  • J2EE1.4是Java平台1.4版的企业版,因此将构建在J2SE1.4上
引用主页:

  • JavaEE5是Java平台版本5的企业版,因此将构建在J2SE5.0上
引用主页:

  • JavaEE6是Java平台版本6的企业版,因此将构建在JavaSE6上
说真的,为什么我们要去JCP网站找到这个(也许我应该从那里开始)

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

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

是否有一个非官方的版本表(例如JDK1.4与J2EE1.3配合良好,JDK1.5与J2EE1.4配合良好,JDK1.6与JavaEE5配合良好等等)

正如我上面所说,“运行良好”并没有真正意义,因为这取决于您使用的容器,并且容器可能具有不同的兼容性要求(例如,IBM WebSphere的J2EE 1.4服务器可能无法与JDK 5一起工作)。所以,我宁愿从需求的角度讲


J2EE1.4SDK与JDK5捆绑在一起,但是。。。J2EE1.4需要JDK1.4或更高版本。JavaEE5需要JDK5或更高版本。Java EE 6需要JDK 6或更高版本(JDK 5现在处于2个多月的下线期)。

通常,Java企业版在JDK之后发布,用于相同版本

基本上,在过去的几个版本中,您已经有了这些下载包:
JDK 5和J2EE 4。
带有JavaEE5的JDK5。
带有JavaEE5的JDK6。
带JavaEE6的JDK6(目前仅可从JavaEE页面获得,JavaSE页面仍有带JavaEE5的JDK6)

请注意,这些下载包实际上包括Sun版本的JavaEE(Glassfish),这与Apache版本的JavaEE(Tomcat/Geronimo)或IBM版本的JavaEE(Websphere)不同


如果您选择不使用Glassfish,您可以只下载JDK6和其他JavaEE包之一。到目前为止,Glassfish是唯一的Java EE 6产品,因为Java EE 6刚刚问世,它是一个参考实现。

但它们之间似乎有着神奇的关联,在经过认证的应用服务器中非常明显。此外,它们似乎是同时发布的(可能是由于营销原因),并且始终遵守+1规则(例如J2EE版本+1=JDK版本)。撇开哲学不谈,我是不是唯一一个看到事实上存在关系的人?我猜是一些头脑尖刻的Sun营销傻瓜打算“避免混淆”通过关联版本号,JavaEE规范确实针对特定的JavaSE版本。例如,JSR 316说:
Java EE 6是Java平台版本6的企业版,因此将构建在Java SE 6上。
各个规范仍然可以选择与较低版本的Java SE兼容,但决不能与较高版本兼容。Java EE实现是否实际在其指定的更高版本的Java SE上运行取决于实现。Java SE版本应该是向后兼容的,因此我认为Java EE实现应该始终在更高版本的Java SE上运行。谢谢,依赖性显然就是我要找的。有来自Sun的官方需求列表吗?事实上,在寻找这些官方需求时,我意识到我最初回答的第一部分不正确,并做了一个大的更新,应该也回答了你的最后一个问题。谢谢你的回答!我希望我能不止一次地+1>
Java7计划在2010年底推出,专家组是否能在Java8和Java7EOL之前成功推出JavaEE7?
-似乎是这样。JavaSE于2011年7月面世,JavaEE7计划于2013年4月面世。Java SE 8计划/预计于2013年9月发布。