JRE 1.4是否支持使用Java 1.5和1.6编译的类?

Mar*_*eon 3 java javac backwards-compatibility

使用1.5和1.6编译的代码是否会在1.4 JRE上运行?我们不确定1.4 JRE支持哪些Java版本.

我们知道,如果有问题的代码实现1.5或1.6支持的功能,那么肯定不会编译 ......并且存在一些"向后编译"的风险,但不确定1.4 JRE是否会拒绝加载1.5/1.6编译类或不编译.


更新:java.lang.UnsupportedClassVersionError如果您在JRE 1.4上运行1.6类文件,我确认您会收到异常.

Kev*_*ion 8

你可以交叉编译.本文档向您展示如何:

http://java.sun.com/javase/6/docs/technotes/tools/solaris/javac.html#crosscomp-example

您必须指定您要定位的特定主要版本(1.4,听起来像).

使用这种技术,您最好的选择是始终使用您能找到的最新javac!这样您就可以获得所有最新的错误修复和性能改进,而且非常安全.

编辑:请注意,这确实解决了库不兼容问题,这在几个答案中讨论过!


Ale*_*yak 5

仅当您使用javac -target 1.4开关编译时.

显然,您将无法使用1.5+功能,例如Generics,Executors等.