Unsupported major.minor version 51.0
已有工程在运行。
对其中的某个java文件修改编译后,将新得到的class文件上传到服务器上,替换原工程中的相应class文件:WEB-INF\classes\...package...\xxx.class
重启服务,访问,后台报异常:
1 java.lang.NoClassDefFoundError: ...package.../xxx 2 at ...package.xxxclass.<xxmethod>(xxx.java:123) 3 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 4 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 5 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 6 at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 7 Truncated. see log file for complete stacktrace 8 Caused By: java.lang.ClassNotFoundException: Class bytes found but defineClass()failed for: '...package.../xxx' 9 at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:276) 10 at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:64) 11 at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 12 at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 13 at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:179) 14 Truncated. see log file for complete stacktrace 15 Caused By: java.lang.UnsupportedClassVersionError: ...package.../xxx : Unsupported major.minor version 51.0 16 at java.lang.ClassLoader.defineClass1(Native Method) 17 at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 18 at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 19 at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 20 at weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:343) 21 Truncated. see log file for complete stacktrace
原因是服务器运行依赖的java版本比编译class文件时使用的jdk版本低,低版本java无法运行高版本java编译的class文件。
解决办法:
项目右击-->属性-->Java Compile-->Compiler Compliance Level-->选择合适的JDK版本-->应用。