Java compiler level does not match the version of the installed Java project facet.
今天用Eclipse时报这个错误:
Java compiler level does not match the version of the installed Java project facet. |
以前没有碰到过,花了半个多小时才搞定,现把解决办法记下来,免得下次再遇到这个问题又要花那么多时间。
问题原因:
Facted Project 中的Java 版本设定与项目的Java编译器的compliance level设定不一致。
解决办法:
把两者设置成相同。
第一步:查看Compiler compliance level
右键Project | Properties | Java Compiler(type filter text输入compiler可快速定位),如下图所示:
根据图中显示可知,Compiler compliance level是6.0(当然您的项目该值很可能不是6.0)
第二步:修改Project Facets的Java值,使之和Compiler compliance level相同:
右键Project | Properties | Project Facets(type filter text输入facet可快速定位):
=>选中Java那行
=>点击Modify Project...按钮
=>修改Java的值,使之和Compiler compliance level相同(本例为6.0)
如果没有找到project facets选项,可以参考下面的方法:
当你安装了两个版本的JDK,用了两个IDE开发工具,比如两个myeclipse,Myeclipse8.5和Myeclipse9.0。
这时候涉及到了jdk版本的问题,而在Myeclipse中设置是比较隐藏的。
Eclipse下有个项目报如上错误,这个是因为Facted Project 中的Java 版本设定与项目的Java 版本设定不一致。而如果使用的是MyEclipse的话,这个配置修改起来就不是很方便,具体方法稍后再说。如果是eclipse jee版本,则使用javaee插件是wtp,在wtp环境在,在当前项目上点右键,属性--Project Facets中,配置编译版本与java compiler的版本一致,问题即解决了。
MyEclipse中没有Project Facets配置选项,则需要到当前项目的.settings文件夹下,找到org.eclipse.wst.common.project.facet.core.xml文件,其内容如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <faceted-project>
- <fixed facet="wst.jsdt.web"/>
- <installed facet="java" version="1.6"/>
- <installed facet="jst.web" version="2.5"/>
- <installed facet="wst.jsdt.web" version="1.0"/>
- </faceted-project>
<?xml version="1.0" encoding="UTF-8"?> <faceted-project> <fixed facet="wst.jsdt.web"/> <installed facet="java" version="1.6"/> <installed facet="jst.web" version="2.5"/> <installed facet="wst.jsdt.web" version="1.0"/> </faceted-project>
其中<installed facet="java" version="1.6"/>这行就是faceted project的编译级别配置。<installed facet="jst.web" version="2.5"/>这行配置在某些情况下也需要修改,比如在MyEclipse中建了个web项目,后来又导入到eclipse jee,有时候就需要修改这个配置。
保存配置后,刷新并build项目后,问题解决。