首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java 8与Java 11兼容吗?

Java 8与Java 11兼容吗?
EN

Stack Overflow用户
提问于 2022-11-29 06:44:00
回答 2查看 69关注 0票数 1

我正在将多个项目从Java 8迁移到Java 11,我想知道Java 8是否与Java 11向前兼容。换句话说,在Java 8项目中可以使用针对Java 11编译的工件吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-11-29 07:15:39

不,您不能在旧的(任何旧的) JVM上执行Java 11字节码。情况一向如此。每个新的主要编译器版本都有一个新的字节码格式,不会在旧的运行时执行。

但是,您可以从较新的JVM上的旧版本执行字节码,因此在Java 11运行时上执行Java 8字节码是非常可能的,因此,如果满足依赖性要求,则可以在Java 11项目中使用Java 8(或更旧版本)编译库。

但是,请记住,Java 9+从Java 8中的核心库中删除了许多包,因此您可能需要从第三方提供新的依赖项来替换这些包。其中最值得注意的(但肯定不是唯一的)是XML解析器。

票数 2
EN

Stack Overflow用户

发布于 2022-11-29 06:51:37

您可以在Java 11运行时运行为Java 8编译的项目。

如果在编译期间正确地将--target设置为以JDK 8或更低为目标,则可以在Java8运行时运行为Java11编译的项目。当然,这也将限制源代码中支持的功能集。

通常,在以后的运行时支持JDK的早期版本(即Java 11应该在Java 17上运行),但是有一些警告,因为有些特性可能被废弃或更改。在升级之前,一定要阅读发行说明和测试。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74610032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档