使用MyEclipse 6.5,在组织好测试用例之后,发现Java Compiler -> Compiler compliance level是5.0。之前一直在使用5.0的级别进行编译运行。以前一直也用的很好,可能今天我一个两个项目用同一个tomcate跑,老是报一下这个错误:
java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClass(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClasses(RemoteTestRunner.java:425)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:445)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
从第一行“java.lang.UnsupportedClassVersionError: Bad version number in .class file”,它说在类文件中发现了错误的版本号,我以为可能编译错误删除WebRoot\WEB-INF\classes下类文件,重新生成了一遍还是这个错误,但是别人用同一个坏境没有报错好怪,我就想可能是JDK的问题,就换成了jdk1.6,同时把Tomcate的那个配置jdk1.6,把坏境的jdk1.5变成1.6。
然后进行编译,一切正常。
========================================================================================
有时候,在MyEclipse运行application程序时会呈现如下过错:
java.lang.UnsupportedClassVersionError: Bad version number in .class file
造成这种过错的原由是ni的支撑Tomcat运行的JDK版本与支撑application运行的JDK版本不一致导致的.
那么如何解决上面的问题呢?
措施显而易见:把它们的JDK版本改成一致.
步骤如下:
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版本,如果没有,可以自身添加.然后选中就可以了.