class 文件有错误的文件版本 51.0,应该是 49.0

class file has wrong file version 51.0, should be 49.0

我的环境是:

windows 7, 32 bit, two jdk, one is 1.5, another is 1.7, google gwt, jetty, ant, two eclipse, one is kepler, another is luna.

对于kepler,我设置它的jdk为1.5,用ant编译jar,这样可以,调试时eclipse可以打开gwtwindow

然后我使用 luna,从 cvs 中检查项目(gwt 项目),当用 ant 编译时有错误说 jdk 是 1.5,因此我将 jdk 更改为 1.7,因为这个项目需要这个版本,最终可以用 ant 编译。但是,当我在 eclipse 中调试它时,它打开一个 gwt window 表示无法编译为 jsp,并且控制台中的错误是:

10:20:48.193 [btpool0-8] ERROR org.apache.jasper.compiler.Compiler - Javac exception

Compile failed; see the compiler error output for details.

    at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:933)
    at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:757)
    at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:382)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:472)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)  

.....
10:20:48.194 [btpool0-8] ERROR org.apache.jasper.compiler.Compiler - Env: Compile:

javaFileName=/C:/Users/FRANKH~1/AppData/Local/Temp/Jetty_localhost_8001_www__Login__-wcglsc/jsp//org/apache/jsp\login_jsp.java

cannot access cn.com.yict.easyport.web.service.CommonUtil

wrong class file: D:\cvs\eInvoice\common-web\target\classes\cn\com\yict\easyport\web\service\CommonUtil.class

class file has wrong version 51.0, should be 49.0

please delete this file or make sure ...

import cn.com.yict.easyport.web.service.CommonUtil;

发生了什么事?

提前致谢!

修改此文件后:org.eclipse.jdt.launching.prefs 位于:.metadata.plugins\org.eclipse.core.runtime.settings、

此问题已修复。

修改为: 添加

<libraryLocations>\r\n<libraryLocation 
jreJar\="D\:/Java/jdk7/jre/lib/resources.jar" 
jreJavadoc\="http\://docs.oracle.com/javase/7/docs/api/" 
jreSrc\="D\:/Java/jdk7/src.zip" pkgRoot\=""/>\r\n.........

给它。

日食是:

Eclipse Java EE IDE for Web Developers.

Version: Luna Release (4.4.0)
Build id: 20140612-0600

我的问题是:

  1. 这个文件是做什么用的?
  2. 什么时候使用这个文件?
  3. 当我在 eclipse 首选项中设置 jdk 时,为什么我必须手动添加这些信息而不是自动生成这些信息?
  4. 为什么这个文件没有when 运行工程(运行之前的工程编译成功)为什么会出现这个错误?