现象

在VSCode创建项目并导入.java文件后,报语句支持的最低版本为JDK1.8,但是在配置文件中指定的java.homejdk1.8.0121,在pom.xml指定maven的jdk的版本号之后仍旧无法解决问题,也尝试在.\.settings\org.eclipse.jdt.core.prefs文件中将指定的1.7更改为1.8,仍旧没有解决问题。

解决方案

在全局搜索1.7之后突然发现在.\.classpath文件下有如下语句:

1
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">

将该语句尾部的JavaSE-1.7修改为JavaSE1.8后成功解决问题。

猜想

解决方案中所展示的语句是检测语句合法性的jdk的规则版本。

证实猜想

经过查阅后发现,.classpath文件本是Eclipse这个IDE特有的一个文件,用来指定配置和指定整个项目工程的环境,其中,猜想中提到的语句是指定了一个外部的插件,作用是在编译代码之前检测代码的合法性,而在VSCode中,Java代码的插件也是采用了这种机制,所以需要在.classpath中指定检测代码合法性的jdk的版本。