把一个项目拷贝到另一个环境,运行时报错:
1 Caused by: java.lang.UnsupportedClassVersionError: Bad version number in .class file 2 at java.lang.ClassLoader.defineClass1(Native Method) 3 at java.lang.ClassLoader.defineClass(ClassLoader.java:620) 4 at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) 5 at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) 6 at java.net.URLClassLoader.access$100(URLClassLoader.java:56) 7 at java.net.URLClassLoader$1.run(URLClassLoader.java:195) 8 at java.security.AccessController.doPrivileged(Native Method) 9 at java.net.URLClassLoader.findClass(URLClassLoader.java:188) 10 at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 11 at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268) 12 at java.lang.ClassLoader.loadClass(ClassLoader.java:251) 13 at org.springframework.util.ClassUtils.forName(ClassUtils.java:211) 14 at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:385) 15 at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1138) 16 ... 71 more
以关键字 Bad version number in .class file 上网搜了一下,发现是jdk版本的问题。
原项目是用JDK 7 编译的,而新环境使用的是JDK 5。
新环境中没有JDK 7,将其改成JDK 6 也可正常运行。