我有点困惑。
发布于 2014-03-24 13:12:39
一般情况下,不。
向后兼容性意味着您可以在Java 8运行时上运行Java 7程序,而不是相反。
这有几个原因:
如果您真的非常需要(提示:您不需要),您可以强制编译器将源代码视为Java的一个版本,并为另一个版本发出字节码,使用如下所示:
javac -source 1.8 -target 1.7 MyClass.java(Maven也一样),并针对JDK7进行编译,但在实践中,它比工作更不起作用。,我建议你不要。
编辑:JDK 8显然不支持这种精确的组合,所以这是行不通的。其他一些版本的组合也能工作。
还有一些程序可以将较新的Java程序转换为在较旧的JVM上工作。对于将Java 8转换为5-7,您可以尝试将https://github.com/orfjackal/retrolambda降低到5以下,您可以选择其中一个:工具。
这些黑客不会为您提供新的Java 8类和方法,包括对集合、流、时间API、无符号API等的函数式编程支持。所以我会说这不值得。
或者,由于您希望在应用程序服务器上运行Java 8 JEE应用程序,所以只需在Java 8上运行整个服务器,它可能会工作。
发布于 2014-03-24 13:17:34
向后兼容性意味着
您可以在更高的配置(而不是Vice-Versa )上运行更低的配置。
发布于 2014-03-24 13:23:18
好的,有一个-target编译器选项,它允许您针对以前的java版本的类文件格式。但是,这并不能修复或检测一些事情,比如在目标版本之后使用JDK中引入的类或方法。
https://stackoverflow.com/questions/22610400
复制相似问题