Java异常.UnsupportedClassVersionError

1.错误原因

        java.lang.UnsupportedClassVersionError 产生原因为使用高版本的JDK编译的Java class文件试图运行在较低版本的JVM上运行所报错误。高版本JDK生成的class文件使用的格式,可能与低版本JDK生成.class文件格式不同,因此低版本JVM无法解释执行此.class文件,便抛出java.lang.UnsupportedClassVersionError不支持的Class版本错误。该错误尤其在JDK5与JDK5之前的版本上表现明显,因为JDK5在Java语法上作了不少增强,引入了一些新的.class文件的元素,导致旧版本的JVM无法解释、执行.class文件。即使这个类并没有使用任何JDK5的新元素,但JDK5生成的.class文件,JDK1.4及其以前的JVM都无法辨认!

2.解决方法

(1)直接换JDK

         比如,Eclipse或MyEclipse IDE工具,进入首选项---Java---编译器,可看到默认的编译器的等级,这里改为JVM对应的版本即可。

(2)Retroweaver 处理

开放源代码的 Retroweaver 项目, 使用 classworking 技术来修改由 JDK 5.0 编译器生成的二进制类表示,以便这些类可以与早期的 JVM 一起使用。通过修改JDK5生成的.class文件,将其变为JVM1.4及之前版本能够运行的.class文件。目前,使用新版本的IDE编辑器可能会造成你遭遇java.lang.UnsupportedClassVersionError 错误。

(3)MyEclipse中Tomcat此类问题

在MyEclipse----应用服务器下,指定Tomcat使用的JDK版本,这样就全部指定使用设定的JDK来编译和运行程序了。注意,绝对不能够使用低版本编译程序,而又在低版本上运行程序,那将会抛出java.lang.UnsupportedClassVersionError不支持的Class版本错误。不论是Eclipse生成的war包,还是ant文件生成war包,都使用低版本编译器编译,就会在运行时出现错误,该应用程序将无法启动。查看Tomcat的日志文件,会看到java.lang.UnsupportedClassVersionError错误。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章