异常“偶遇”之—— UnsupportedClassVersionError:Bad version number in .class file

来源:互联网 发布:数控编程用什么语言 编辑:程序博客网 时间:2024/06/05 18:38

今日在做系统补丁开发时,偶遇了一番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】异常信息

Java 代码
  1.      java.lang.UnsupportedClassVersionError: Bad version number in .class file  
  2. at java.lang.ClassLoader.defineClass1(Native Method)  
  3. at java.lang.ClassLoader.defineClass(Unknown Source)  
  4. at java.security.SecureClassLoader.defineClass(Unknown Source)  
  5. at java.net.URLClassLoader.defineClass(Unknown Source)  
  6. at java.net.URLClassLoader.access$100(Unknown Source)  
  7. at java.net.URLClassLoader$1.run(Unknown Source)  
  8. at java.security.AccessController.doPrivileged(Native Method)  
  9. at java.net.URLClassLoader.findClass(Unknown Source)  
  10. at java.lang.ClassLoader.loadClass(Unknown Source)  
  11. at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)  
  12. at java.lang.ClassLoader.loadClass(Unknown Source)  
  13. at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClass(RemoteTestRunner.java:683)  
  14. at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClasses(RemoteTestRunner.java:425)  
  15. at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:445)  
  16. at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)  
  17. at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)  
  18. at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196

2010-07-12

原创粉丝点击