【问题标题】:How does Jakarta/Java EE compatibility work?Jakarta/Java EE 兼容性如何工作?
【发布时间】:2021-10-16 21:22:55
【问题描述】:
所以我试图了解哪些 JDK 版本与 Jakarta EE 9.1 兼容(使用 glassfish 6.1.0)。显然它最多支持 JDK 11,但在 NetBeans 中能够完美地运行安装了 JDK 16 的 GlassFish。它还显示已安装的 Jakarta API 库的版本为 9.0.0,但不知何故我仍然能够下载、安装和运行 GlassFish 6.1.0..
简而言之,我只是对所有版本兼容性以及在没有匹配版本的情况下如何在我的终端上工作(假设我上面写的内容是正确的)感到困惑。
【问题讨论】:
标签:
java
jakarta-ee
netbeans
glassfish
compatibility
【解决方案1】:
一些产品也可以与更高版本的 Java 配合使用。
Java 8、11 和 17 是官方的Long-Term Support (LTS) 版本。因此,这些版本预计将在生产中用于严肃的部署。
Jakarta EE 9.1 的重点是对 Java 11 的支持。一些规范有其他变化,但大多是微小的。
目前正在开发的 Jakarta 10 是您可以期待看到创新和改进的地方。您可以找到许多讨论可能的变化和当前计划的视频演示和博客文章。各个团队正在征求对其特定规范感兴趣的人的意见。
你说:
能够在安装了 JDK 16 的情况下完美运行 GlassFish
Java 16 现已终止,不再受支持。我建议您继续使用 Java 17、当前版本以及 LTS 版本。
是的,许多产品都可以在 Java 的更高版本中运行良好。对于与 Jakarta EE 9.1 兼容、旨在支持 Java 11 的产品尤其如此。Java 在破坏或限制 Java 8 和 11 之间的向后兼容性方面存在一些问题。因此,一些较旧的产品在超越 Java 8 时可能会遇到问题。相比之下,Java 11 到 17 的兼容性非常流畅,问题很少。
但这就是官方 Java 版本中six-month cadence 的意义所在。您可以并且可能应该使用每个 Java 版本进行一些开发和测试工作。如果您遇到任何问题,可以尽早向问题产品的开发人员提供反馈。
关于Eclipse GlassFish 具体来说,their home page 描述了各种版本。
- 6.2.2 版是与 Jakarta EE 9.1 兼容的当前版本。
- 使用 JDK 11 编译到 JDK 17
- 在 JDK 11 到 JDK 17 上运行。
- 使用 JDK 18 早期访问版本进行了简要测试。
- 之前的版本 GlassFish 6.2.1 大大改进了对 JDK 17 的支持。