今日在做系统补丁开发时,偶遇了一番UnsupportedClassVersionError错误。从异常栈信息来说,Bad Version number in .class file 已经是非常明确的指示!可惜的是,往往在实际当中,总是被一些表面东西遮盖了这个Error的真实面目,把简单复杂化了(造成这个问题多是IDE引起的,哎,方便的同时,也在制造麻烦)。
Google了一番无疑都是指向同一个问题:Java虚拟机版本不一致引发编译后.class文件在类加载时不能通过JVM验证的问题。当然在此,解决方案也是,只需要求统一Java虚拟机版本重新编译就行了。
这次碰到的情况不会跳出上面的问题,只是在检测这个异常的时候被Eclipse蒙蔽了眼睛,走了一小段弯路罢了!在工程中显示的JRE是1.5,但是在部署到JBOSS服务器时,就老爱抛UnsupportedClassVersionError错误,哎,在Eclipse中一时半会以为工程的配置都OK,但是,等自己打开Eclipse中的Java Complier时,却无语的发现这里显示的是1.6,哎,可能是自己电脑上安装了其他JVM的问题!
【MARK】异常信息
Google了一番无疑都是指向同一个问题:Java虚拟机版本不一致引发编译后.class文件在类加载时不能通过JVM验证的问题。当然在此,解决方案也是,只需要求统一Java虚拟机版本重新编译就行了。
这次碰到的情况不会跳出上面的问题,只是在检测这个异常的时候被Eclipse蒙蔽了眼睛,走了一小段弯路罢了!在工程中显示的JRE是1.5,但是在部署到JBOSS服务器时,就老爱抛UnsupportedClassVersionError错误,哎,在Eclipse中一时半会以为工程的配置都OK,但是,等自己打开Eclipse中的Java Complier时,却无语的发现这里显示的是1.6,哎,可能是自己电脑上安装了其他JVM的问题!
【MARK】异常信息
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)