【发布时间】:2021-09-03 13:13:14
【问题描述】:
兼容Java11的jetty最低版本是多少?
我目前使用的是在 Java7 上运行的 Jetty6.1.3。我尝试简单地升级 jre 和相关依赖项,但它不起作用。
【问题讨论】:
-
@Pilpo 您的信息在安全问题方面已经过时 - 请参阅 eclipse.org/jetty/security_reports.php
-
你说得对,我删除了我的评论。
兼容Java11的jetty最低版本是多少?
我目前使用的是在 Java7 上运行的 Jetty6.1.3。我尝试简单地升级 jre 和相关依赖项,但它不起作用。
【问题讨论】:
取决于您所说的“与 Java11 兼容”是什么意思?
“与 Java11 兼容”可能意味着很多事情,不仅仅是运行时,还涉及围绕 Java 9 引入的新功能(例如 JEP 238 和 MultiRelease JAR 文件)。
对于 Jetty 9.4.x 系列,字节码扫描在与 java 11 兼容之前经历了几次迭代。
module-info.class 内容(在 Java 8 运行时运行时)。META-INF/versions/* 内容。META-INF/versions/* 智能地在 Java 9+ 运行时进行字节码扫描。查看过去关于这些主题的答案
与往常一样,让您的 Jetty 和 JVM 保持最新。 (特别是如果你使用 SSL/TLS,因为在那个空间里事情变化非常快)
【讨论】:
Eclipse Jetty 网站称 Jetty 10 和 11 至少都是为 Java 11 构建的。
| Jetty Version | Servlet API | License | Java |
|---|---|---|---|
| Jetty 9.4.x | 3.1 | JavaEE 8javax.servlet.*
|
Java 8 |
| Jetty 10.0.x | 4.0 | JavaEE 8javax.servlet.*
|
Java 11+ |
| Jetty 11.0.x | 5.0 | JakartaEE 9jakartaee.servlet.*
|
Java 11+ |
由于从 Oracle Corp 到 Eclipse Foundation 的过渡(Java EE 成为 Jakarta EE),以及随之而来的包名称从 javax.* 到 @987654330 的变化@,两个 Jetty 版本 10 和 11 在功能上是相同的。这两个版本是并行开发的。唯一显着的区别是包名。
顺便说一句,Apache Tomcat 也在做同样的事情,并行版本 9 和 10.0,都支持 8+。它们分别使用 javax 和 jakarta 包命名。
Tomcat 的下一个版本,版本 10.1.x 需要 Java 11+。 Tomcat 的下一个版本将支持仍在开发中的Jakarta 10 技术的下一个版本,例如Servlet 6。请参阅 Tomcat 网站上的 Which version? 页面。
您可以通过在 Java 11 上转到 Jetty 10 进行直接升级。
【讨论】: