是否可以使用更新的Java (例如9、10、11等)进行开发?版本,并将Java编译成一些较旧的版本--比如Java 8?
我们希望使用新的Java版本的新特性,但是我们的代码需要运行在Java 8平台上。
如果有关系的话:我们正在和Maven一起建设。
用Javascript的方式来表述它:
是否存在Java的Babel填充等价?
发布于 2019-03-28 14:44:01
不-您不能在较旧的JVM上使用新特性;bytecode is incompatible。
您绝对可以使用较新版本的Java编译到更低的版本,并对模块进行一些警告。
如果您需要更新Java版本的新特性,那么是时候迁移到一个新版本了;除此之外,在需要Oracle的支持之前,您的位置是可以的。
发布于 2019-03-28 14:38:47
不一定。如果您的代码使用以前版本中未定义的包/语法结构,则程序将无法运行/编译。
这样想吧。在Java 8之前,没有lambda表达式。因此,如果您在Java 8+中创建一个lambda表达式,然后尝试在java 7中编译它,编译器将是这样的:什么是lambda表达式?
总之不行。然而,你可以走另一条路。使用较高版本编译用较低版本编写的代码.大部分。
https://stackoverflow.com/questions/55400249
复制相似问题