Mit*_*cia 50 java backwards-compatibility java-server java-8
我有点困惑.
Oracle称Java 8与Java 7高度兼容(向后).但是,Java 8程序可以在Java 7上成功运行(SE/EE)的可能性有多大?
如果第一点是真的,Java 8应用程序将在Java 7服务器支持上部署和执行?例如,Tomcat 8还是WildFly?
Kar*_*l S 75
一般来说,没有.
向后兼容性意味着您可以在Java 8运行时运行Java 7程序,而不是相反.
有几个原因:
字节码是版本化的,JVM检查它是否支持在.class文件中找到的版本.
某些语言结构无法在以前版本的字节码中表示.
在较新的JRE中有新的类和方法,它们不适用于较旧的JRE.
如果你真的,真的想要(提示:你没有),你可以强制编译器将源视为Java的一个版本,并为另一个版本发出字节码,使用类似这样的东西:
javac -source 1.8 -target 1.7 MyClass.java
Run Code Online (Sandbox Code Playgroud)
(Maven也一样),并针对JDK7进行编译,但在实践中,它往往不起作用而不是工作.我建议你不要.
编辑:JDK 8显然不支持这种确切的组合,所以这不起作用.一些其他版本的组合确实有效.
还有一些程序可以将较新的Java程序转换为适用于较旧的JVM.要将Java 8转换为5-7,您可以尝试https://github.com/orfjackal/retrolambda要获得低于5,您可以选择以下其中一个:http://en.wikipedia.org/wiki/Java_backporting_tools
这些黑客都不会为您提供新的Java 8类和方法,包括对集合,流,时间API,未签名API等的函数式编程支持.所以我说它不值得.
或者,既然您想在应用程序服务器上运行Java 8 JEE应用程序,只需在Java 8上运行整个服务器,它就可以运行.
归档时间: |
|
查看次数: |
45041 次 |
最近记录: |