如何在兼容模式下运行Java?

如何在兼容模式下运行Java?,java,java-8,compatibility-mode,Java,Java 8,Compatibility Mode,Java支持在兼容模式下运行吗?换句话说,如果我们在系统上安装了JDK 8,是否可以将其配置为使用相同的安装在7或以前的版本上运行我的应用程序 我可以举一个例子,比如IE-11可以根据兼容性选项切换为IE 8、9或10运行。我同意Kayaman的评论。 可能会出现两种类型的不兼容:字节码更改(8中支持而7中不支持某些功能-新的Java版本倾向于向上兼容-因此8将能够运行所有针对7的代码)和问题更大的库更改 如果您使用针对7+的Java8进行编译,您的字节码将与Java7JVM兼容,但您不能保证它

Java支持在兼容模式下运行吗?换句话说,如果我们在系统上安装了JDK 8,是否可以将其配置为使用相同的安装在7或以前的版本上运行我的应用程序


我可以举一个例子,比如IE-11可以根据兼容性选项切换为IE 8、9或10运行。

我同意Kayaman的评论。 可能会出现两种类型的不兼容:字节码更改(8中支持而7中不支持某些功能-新的Java版本倾向于向上兼容-因此8将能够运行所有针对7的代码)和问题更大的库更改

如果您使用针对7+的Java8进行编译,您的字节码将与Java7JVM兼容,但您不能保证它将与Java7库一起运行

您最好的选择是使用Java7编译和运行,而它(很可能)将使用Java8运行


然后还有其他可能影响应用程序的更改(例如GC性能)。

不,没有这种兼容模式。如果您想绝对确定,您必须安装额外的JDK并在其上测试程序。@Gimby我认为问题不在于编译,而在于Java 7程序是否可以在Java 8上运行。--无论如何,答案是(除了极少数例外),Java是向后兼容的,不需要兼容模式。请参阅第一条注释中的链接。如果要防止意外访问新的Java 8类或成员,则需要Java 7的JRE库在编译时将其指定为引导类路径。这意味着您无论如何都将安装Java7。除此之外,即使是兼容模式也不能让你在某个时候对真实的东西进行真正的测试…