java - Jakarta/Java EE 兼容性如何工作?
问题描述
所以我试图了解哪些 JDK 版本与 Jakarta EE 9.1 兼容(使用 glassfish 6.1.0)。显然它最多支持 JDK 11,但在 NetBeans 中能够完美地运行安装了 JDK 16 的 GlassFish。它还显示已安装的 Jakarta API 库的版本为 9.0.0,但不知何故我仍然能够下载、安装和运行 GlassFish 6.1.0..
简而言之,我只是对所有版本兼容性以及在没有匹配版本的情况下如何在我的终端上工作(假设我上面写的内容是正确的)感到困惑。
解决方案
- 任何符合Jakarta EE 9.0的产品都保证可以与Java 8一起使用。
- 任何符合Jakarta EE 9.1的产品都保证可以与Java 11一起使用。
一些产品也适用于更高版本的 Java。
Java 8、11 和 17 是官方长期支持 (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 官方发布的六个月节奏的重点。您可以并且可能应该使用每个 Java 版本进行一些开发和测试工作。如果您遇到任何问题,您可以尽早向有问题的产品的开发人员提供反馈。
特别是关于Eclipse GlassFish,他们的主页描述了各种版本。
- 版本 6.2.2 是符合 Jakarta EE 9.1 的当前版本。
- 使用 JDK 11 编译到 JDK 17
- 在 JDK 11 到 JDK 17 上运行。
- 使用 JDK 18 早期访问版本进行了简要测试。
- 之前的版本 GlassFish 6.2.1 为 JDK 17 带来了改进的支持。
推荐阅读
- python - 为什么我无法导入使用 setuptools 创建的包?
- python - 为什么这段代码可以在没有“”的情况下访问字典?
- angular - Froala 图像上传 - 加载程序和其他操作的弹出窗口不可见
- database - B 树的最小度数“t”到底是多少?
- java - 使用 Eclipse SVN 和 java 找不到库错误发生
- scala - 选择具有固定列的切片列
- hive - hive 或 impala 函数来获取字符串的子字符串
- python-3.x - 在 python3 中使用“with open()”打开文件时出现错误的缓冲区大小和数据
- pip - 无法使用 pip 下载 catboost
- javascript - 我想在滚动时更改导航栏的背景颜色