较新的 Java 版本 (9, 10, 11) 能否在旧平台(例如 Java 8)上编译为 运行?
Can newer Java version (9, 10, 11) be compiled to run on older platforms (e.g Java 8)?
是否可以使用较新的 Java(例如 9、10、11 等)版本进行开发,并将 Java 编译为某些旧版本 - 例如 Java 8?
我们想使用较新 Java 版本的新功能,但我们的代码需要 运行 在 Java 8 平台上。
如果重要的话:我们正在使用 Maven 进行构建。
以Java脚本方式表达:
是否存在 Java 的 Babel Polyfill 等价物?
不一定。如果您的代码使用了以前版本中未定义的 packages/syntactical 结构,程序将无法 run/compile。
这样想。在 Java8 之前,没有 lambda 表达式。因此,如果您在 Java 8+ 中创建一个 lambda 表达式,然后尝试在 java 7 中编译它,编译器将是这样的:什么是 lambda 表达式?
简而言之,没有。但是,您可以采用其他方式。使用高版本编译低版本编写的代码...大部分。
否 - 您不能在较旧的 JVM 上使用新功能; bytecode is incompatible.
您绝对可以使用 Java 的较新版本编译到较低版本,但有一些关于模块的注意事项。
如果您需要 较新 Java 版本的新功能,那么是时候迁移到新版本了;除此之外,在您需要 Oracle 的支持之前,您的位置会很好。
是否可以使用较新的 Java(例如 9、10、11 等)版本进行开发,并将 Java 编译为某些旧版本 - 例如 Java 8?
我们想使用较新 Java 版本的新功能,但我们的代码需要 运行 在 Java 8 平台上。
如果重要的话:我们正在使用 Maven 进行构建。
以Java脚本方式表达:
是否存在 Java 的 Babel Polyfill 等价物?
不一定。如果您的代码使用了以前版本中未定义的 packages/syntactical 结构,程序将无法 run/compile。
这样想。在 Java8 之前,没有 lambda 表达式。因此,如果您在 Java 8+ 中创建一个 lambda 表达式,然后尝试在 java 7 中编译它,编译器将是这样的:什么是 lambda 表达式?
简而言之,没有。但是,您可以采用其他方式。使用高版本编译低版本编写的代码...大部分。
否 - 您不能在较旧的 JVM 上使用新功能; bytecode is incompatible.
您绝对可以使用 Java 的较新版本编译到较低版本,但有一些关于模块的注意事项。
如果您需要 较新 Java 版本的新功能,那么是时候迁移到新版本了;除此之外,在您需要 Oracle 的支持之前,您的位置会很好。