簡體   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