我可以将任何版本的 Java SE 与 Java EE 8 一起使用吗?

Can I use any version of Java SE with Java EE 8?

随着 Java EE 的每一次新发布,其下的技术堆栈都会有大量新的改进和补充。 JSF、JPA、EJB 都将有与这个新版本相关的不同版本。 (Java EE 8 - JSF 2.3、JSP2.3、JPA 2.2、EJB 3.2)

Java SE 平台每 6 个月左右发布一次 Java SE 的新版本。此更改如何适应 Java EE?

例如,如果我在 Java EE 8 中开发应用程序,我应该使用哪个 Java SE(9,10,11,12)?

1.我可以将任何版本的 Java SE 与 Java EE 一起使用吗? (Java EE 8 + Java SE 11) 或 (Java EE 8 + Java SE 8) 或 (Java EE 8 + Java SE 10).

Java EE 如何处理不断变化的 Java SE?因为 Java EE 8 中使用的每种技术都有特定的版本,例如 JSF 2.3、JSP2.3、JPA 2.2、EJBs 3.2。

2。为什么在 Java EE 中没有使用特定版本的 Java SE 来进行编程?

JDK 8+ 是必需的,但是...

这实际上取决于你的Java EE 8 vendor

Java EE 8 (a.k.a. Jakarta EE) has a few API elements that require JDK 8, so the definitive baseline is at least JDK 8.

例如,我使用 Wildfly 16 (= Java EE 8) with JDK 12 并且到目前为止它运行完美,尽管需要 JDK 8。

其他供应商,例如 Glassfish, Weblogic might require different versions. Glassfish, for instance doesn't work yet on JDK 9+