一、Eclipse工作空间JRE编译版本
菜单栏window->preferences->java->compiler,如下图:
修改Compiler compliance level为对应的级别即可。Eclipse对java项目的编译并不是使用JDK完成的,是通过自带的ECJ(Eclipse Compiler for Java)来实现的,这也就解释了为什么你本地安装的JDK或启动Eclipse是在配置文件中通过-vm参数设置的jdk或新建项目时选择的JDK的版本为1.6时,在这里的编译级别却可以选为1.7或1.8的原因,因为所能编译的最高级别跟那些JDK根本没有关系,是由eclipse版本决定的。如果你的Eclipse在这个选项里没有你需要的级别,可以尝试着升级高版本来实现。
二、Eclipse工作空间JRE运行版本
菜单栏window->preferences->java->Installed JREs,
首先在该处添加你需要的JRE,注意此处是添加JRE即可,没有必要是JDK(被选中的JRE为Eclipse默认使用的JRE,即在你新建项目时如不特别指定会默认关联该JRE,在运行该项目时,使用该JRE执行),
三、项目JRE运行版本
右击项目,Java Build Path的JRE版本一般是和上面Eclipse工作空间JRE运行版本配置一样的,
但是可以手动更改项目的运行版本,如下图:
这样设置后,Eclipse在run或debug项目时就会使用1.6版本的JRE。
四、编译与运行版本的关系
编译的级别可以低于运行JRE的版本,但是不能高于JRE的版本。大概关系如下:
1、Compiler compliance level =1.6 JRE=1.7
程序可以正常运行
2、Compiler compliance level =1.7 JRE=1.6
程序无法运行,通常会报如下错误
java.lang.UnsupportedClassVersionError: com/zfc/test/JreTest : Unsupported major.minor version 51.0
3、Compiler compliance level =1.7 JRE=1.7
程序可以正常运行