首页 > 解决方案 > 是否可以编译较新的 Java 版本(9、10、11)以在较旧的平台(例如 Java 8)上运行?

问题描述

是否可以使用较新的 Java(例如 9、10、11 等)版本进行开发,并将该 Java 编译为某些较旧的版本 - 例如 Java 8?

我们想使用较新 Java 版本的新功能,但我们的代码需要在 Java 8 平台上运行。

如果重要的话:我们正在使用 Maven 构建。


以 Javascript 方式表达它:

Java 是否存在 Babel Polyfill 等价物?

标签: javamavenjava-8java-11

解决方案


不必要。如果您的代码使用了以前版本中未定义的包/语法结构,则程序将无法运行/编译。

这样想吧。在 Java 8 之前,没有 lambda 表达式。因此,如果您在 Java 8+ 中创建一个 lambda 表达式,然后尝试在 Java 7 中编译它,编译器会是这样的:什么是 lambda 表达式?

简而言之,没有。但是,您可以另辟蹊径。使用较高版本编译以较低版本编写的代码......在大多数情况下。


推荐阅读