java - Jakarta/Java EE 兼容性如何工作?

标签 java jakarta-ee netbeans glassfish compatibility

所以我试图了解哪些 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。

Java 8、11 和 17 是官方的 Long-Term Support (LTS)版本。因此,这些版本预计将用于正式部署的生产环境中。

Jakarta EE 9.1 的要点是对 Java 11 的支持。一些规范有其他变化,但大多是次要的。

Jakarta 10 目前正在开发中,您可以期待看到创新和改进。您可以找到许多讨论可能的更改和当前计划的视频演示和博客文章。各个团队正在征求对其特定规范感兴趣的人员的意见。

你说:

able to perfectly run GlassFish with JDK 16 installed

Java 16 现已停产,不再受支持。我建议您继续使用 Java 17,即当前版本和 LTS 版本。

是的,许多产品可以在更高版本的 Java 上运行良好。对于与旨在支持 Java 11 的 Jakarta EE 9.1 兼容的产品尤其如此。Java 在破坏或限制 Java 8 和 11 之间的向后兼容性方面存在一些问题。因此,一些较旧的产品在超过 Java 8 时可能会遇到问题。在相比之下,从 Java 11 到 17 的兼容性非常顺利,几乎没有问题。

但这就是 six-month cadence 的重点官方 Java 版本。您可以并且很可能应该使用每个 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 的支持。

关于java - Jakarta/Java EE 兼容性如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69599649/

相关文章:

java - 如何从java代码生成系统架构?

Cygwin 和 Netbeans : run on default Windows shell?

java - 无法将 java.lang.String 类型的属性值转换为所需的类型 double

Java MongoDB Morphia : find a object by ObjectId id

java - 这个 SQLITE db.insert 可以组合或改进吗?

java - 如何将 WAR 文件添加到现有的 EAR 文件中?

web-services - 如何在服务器或客户端以编程方式记录 SOAP 消息和 HTTP header ?

java - 如何根据窗口调整 jlabel 的大小

java - @ManyToOne JPA 关系可以为空吗?

java - 使用 JAXB 将 Xml 字符串转换为对象