是否可以编译较新的Java版本(9,10,11)以在较旧的平台上运行(例如Java 8)?

问题描述 投票:3回答:2

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

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

如果重要:我们正在与Maven一起建设。


用Javascript方式表达它:

是否存在Java的Babel Polyfill等价?

java maven java-8 java-11
2个回答
6
投票

不 - 您不能在旧JVM上使用新功能; bytecode is incompatible

您可以绝对使用较新版本的Java编译为较低版本,并对模块有一些警告。

如果您需要更新的Java版本的新功能,那么是时候迁移到新版本了;除此之外,在您需要Oracle支持之前,您将处于良好状态。


6
投票

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

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

总之没有。但是,你可以走另一条路。在大多数情况下,使用更高版本编译以较低版本编写的代码。

© www.soinside.com 2019 - 2024. All rights reserved.