繁体   English   中英

与 Java 兼容的最低 Jetty 版本 11

[英]Minimum Jetty version compatible with Java 11

与 Java11 兼容的最低码头版本是多少?

我目前正在运行在 Java7 上的 Jetty6.1.3。 我尝试简单地升级 jre 和相关依赖项,但它不起作用。

取决于“与 Java11 兼容”是什么意思?

如果你的意思是“它只是工作”,那么使用 Jetty 9.4.x 系列。

“与 Java11 兼容”意味着很多事情,不仅是运行时,还涉及围绕 Java 9 引入的新功能(例如 JEP 238 和 MultiRelease JAR 文件)。

对于 Jetty 9.4.x 系列,字节码扫描在与 java 11 兼容之前经历了几次迭代。

  1. 在 Jetty 9.4.9 上,字节码扫描必须忽略当时在第 3 方 jar 文件中找到的 JPMS module-info.class内容(在 Java 8 运行时运行时)。
  2. 在 Jetty 9.4.9 上,字节码扫描必须忽略 Java 8 运行时上META-INF/versions/*内容。
  3. 在 Jetty 9.4.14 上,字节码扫描必须使用META-INF/versions/*智能地在 Java 9+ 运行时进行字节码扫描。
  4. 在 Jetty 9.4.14 上,必须更新字节码扫描以支持新的字节码格式(这意味着 ASM 库更新)

查看过去关于这些主题的答案

如果你的意思是“有效地使用 Java 11”,那么使用 Jetty 10.0+

一如既往,保持 Jetty 和 JVM 为最新。 (尤其是如果您使用 SSL/TLS,因为该领域的情况变化非常快)

Eclipse 码头

Eclipse Jetty web 站点表示 Jetty 10 和 11 至少是为 Java 11 建造的。

码头版本 小服务程序 API 执照 Java
码头 9.4.x 3.1 JavaEE 8
javax.servlet.*
Java 8
码头 10.0.x 4.0 JavaEE 8
javax.servlet.*
Java 11+
码头 11.0.x 5.0 雅加达EE 9
jakartaee.servlet.*
Java 11+

由于从 Oracle Corp 过渡到 Eclipse Foundation( Java EE成为Jakarta EE ),以及随后将 package 名称从javax.*更改为jakarta.* ,两个 Jetty 版本 10 和 11 在功能上是相同的。 这两个版本是并行开发的。 唯一显着的区别是 package 名称。

Apache Tomcat

顺便说一句,Apache Tomcat也是这样做的,并行版本9和10.0,都支持8+。 它们分别使用javaxjakarta package 命名。

下一个版本Tomcat,版本 10.1.x 需要 Java 11+ Tomcat 的下一个版本将支持Jakarta 10技术的下一个版本仍在开发中,例如Servlet 6 请参阅哪个版本? Tomcat 网站上的页面。

在 Java 11 上升级到 Jetty 10

您可以通过转到 Java 11 上的 Jetty 10 进行直接升级。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM