求高手解决:我做了一个项目用的jdk版本是1.6的,现在公司要求用1.5的版本,我安装了1.5版本后,也配置了环境变量,TomCat jdk,MyEclipse运行环境也改成了jdk 1.5版本的了,但是启动TomCat 还会报错:
java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1815)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1325)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
at org.apache.catalina.startup.WebAnnotationSet.loadClassAnnotation(WebAnnotationSet.java:145)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationFilterAnnotations(WebAnnotationSet.java:84)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:57)
at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:297)
at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1064)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4238)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:761)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:741)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)

解决方案 »

  1.   

    在MyEclipse中将编译文件清理掉,然后再重新编译一次,步骤:
    1.去掉自动编译,Project > BuildAutocatically
    2.Project>Clean。
    2.Project>Build All或 Build Project。或者直接到项目根目录下删除build文件夹,然后再到MyEclipse中重新编译。
      

  2.   

    因为你原先的.class文件都是在1.6版本的基础上编译的,
    需要重新编译
      

  3.   

    谢谢各位了,可以了!
    步骤如下(eclips与myeclips操作类似):
        1、Window --> Preferences -->Java --> compiler中的compiler compliance level对应的下拉       菜单中选择JDK版本.
        2、Window --> Preferences -->MyEclipse --> Servers -->Tomcat --> Tomcat n.x -->JDK       中的Tomcat JDK name下的下拉菜单中选择自身电脑上安装的JDK版本(必需与步骤1 中的JDK       版本一致).
           如果还是没有解决,不用焦急,因为有些MyEclipse版本自带有JDK版本,所以也要将它改过来.
        3、Window --> Preferences -->Java -->Installed JRES,然后在右边选择与步骤1和2 版本一       致的JDK版本,如果没有,可以自身添加.然后选中就可以了.
      

  4.   

    這相當於應該是eclipse造成的,因為你說之前jdk已經都調成1.5的了,但是如果eclipse的compiler compliance level沒有對應調整的話,在1.5下編譯的class version number可能仍是1.6的,而運行用tomcat jre已是1.5,因此會報bad version number