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代码 复制代码 收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>    
  2. <faceted-project>    
  3. <fixed facet="wst.jsdt.web"/>    
  4. <installed facet="java" version="1.6"/>    
  5. <installed facet="jst.web" version="2.5"/>    
  6. <installed facet="wst.jsdt.web" version="1.0"/>    
  7. </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项目后,问题解决。

posted @ 2013-12-25 11:24  QQ天堂  阅读(421)  评论(0编辑  收藏  举报