参考:https://blog.csdn.net/zcdyx88/article/details/53928383
https://blog.csdn.net/wdjhzw/article/details/42086615 (推荐)
本地环境:JDK1.8+JDK自带的一个JRE
需要明确的是:编译项目使用的JDK版本不能高于其JRE版本
一、此处选择的是项目运行时的JRE版本,列表内容由Eclipse的版本决定,所以此处除了JavaSE-1.8还可以选择JavaSE-10等其他各个版本。
而由于我的电脑上只有JavaSE-1.8对应的JRE,当我选择了JavaSE-11前的版本是会报错的,选择其之后的版本如J2SE-1.2是通过的,这是因为JRE版本向下兼容的问题。
具体当前JRE的兼容问题可参考 Preferences ->Installed JRES
Jdk1.8的JRE完全匹配于JavaSE-1.8
jdk1.8的JRE可兼容于J2SE-1.2 JavaSE-11未安装可兼容的JRE版本
总结:此处选择的版本必须得本地已安装的JRE中包含或者能兼容该版本,否则该项目会因没有JRE而出现如上图的报错。同时选择了本地JRE可兼容的JRE版本时会出现如下警告:
当前的编译版本是1.5,而JRE用的是1.8的。简单来说如果你选择的JRE版本是你本地未安装的,选择它在我看来就没啥意义了,因为和JDK版本进行比较的还是你实际在用的JRE。
值得注意的是当我选择了JRE版本后Eclipse会自动为该项目匹配同等级的JDK编译版本。 选择了J2SE-1.5后的编译版本如下图(有关编译见第二部分)
二、项目创建后还可以单独设置JDK编译版本。
它是根据Eclipse内部提供 的ECJ(Eclipse Compiler for Java)设定的,而非本地自己安装的JDK。简单来说就是Eclipse对Java项目的编译是通过自带的ECJ(Eclipse Compiler for Java)来实现的,所以这里可供选择的JDK版本依然是由Eclipse的版本决定的。而如果你的Eclipse在这个选项里没有你需要的级别,可以尝试着升级高版本。
注意:如果你选择的JDK版本高于项目下实际使用的JRE版本,程序运行会出现如下报错。
三、设置项目的JRE版本
就像上面解释的一样,之所以显示的J2SE-1.5是由刚刚项目建立时选择的JRE版本决定的,但由于本地没有JRE1.5所以会自动匹配到高版本可用的JRE,即实际使用的还是JDK1.8自带的JRE。
结语:感谢您的阅读!如有错误之处,烦请指出,再次感谢,祝工作顺心,生活愉快~