`
jianchen
  • 浏览: 344939 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

遭遇java.lang.UnsupportedClassVersionError

阅读更多

调试一个程序时,出现了UnsupportedClassVersionError。我前几天装过1.4的jdk,为了给以前做的网站做细微的调整,因为该网站的服务器上装的jdk是1.4的版本,以前开发时也配的1.4的环境。上网找到了一片阐述的还可以的文章,直接转过来了。

源连接:http://read.newbooks.com.cn/info/50546.html

出现 java.lang.UnsupportedClassVersionError 错误的原因

出现 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 都无法辨认!

所以,目前使用最广的,还是 JDK1.4 。很多软件和项目都无法使用 JDK5

有一个名叫 Toby Reyelts 的开发人员决定消除 JDK 5.0 编译器限制。结果就是开放源代码的 Retroweaver 项目(参见 参考资料 )。 Retroweaver 使用 classworking 技术来修改由 JDK 5.0 编译器生成的二进制类表示,以便这些类可以与早期的 JVM 一起使用。

它通过修改 JDK5 生成的 .class 文件,将其变为 JVM1.4 及之前版本能够运行的 .class 文件。

目前,使用新版本的 IDE 编辑器可能会造成你遭遇 java.lang.UnsupportedClassVersionError 错误。

比如, Eclipse3.2+MyEclipse5.0 这个新版的 IDE 工具。进入首选项 ---Java--- 编译器,可以看到,默认的编译器依从等级是 5.0, 这里改为 1.4 ,因为我们使用的软件需要运行在 JDK1.4 JVM 上。

同一配置区下的已安装 JRE 中,不要安装 JRE ,而是安装 JDK ,指定 1.4 1.5 JDK 。还是使用 jdk1.4

MyEclipse---- 应用服务器下,指定 Tomcat5 。指定 Tomcat 使用 jdk1.4

这样,就全部指定使用 Jdk1.4 来编译和运行程序了。如果全部指定 jdk5 也是可以的。但是,绝对不能够使用 jdk5 编译程序,而又在 jdk1.4 上运行程序,那样将会抛出 java.lang.UnsupportedClassVersionError 不支持的 Class 版本错误。

这种情况下,不论是 Eclipse 生成的 war 包,还是 ant 文件生成 war 包,都使用 jdk5 编译,就会在运行时出现错误,该应用程序将无法启动。如果你查看 Tomcat 的日志文件,将会看到正是 java.lang.UnsupportedClassVersionError 错误发生了!

分享到:
评论

相关推荐

    java.lang.UnsupportedClassVersionError问题解决

    ### java.lang.UnsupportedClassVersionError问题解析与解决方案 在Java开发过程中,经常会在部署或运行时遇到`java.lang.UnsupportedClassVersionError`错误。该错误通常发生在类文件版本与JVM(Java虚拟机)版本...

    java.lang.UnsupportedClassVersionError问题的解决方法

    ### java.lang.UnsupportedClassVersionError问题的解决方法 在开发Java应用程序的过程中,经常会遇到与JDK版本不兼容的问题,其中一种常见的异常就是`java.lang.UnsupportedClassVersionError`。该错误通常发生在...

    java.lang.UnsupportedClassVersionError Bad version number in .class file异常的解决办法

    ### java.lang.UnsupportedClassVersionError: Bad version number in .class file 异常的解决办法 #### 一、问题概述 在使用MyEclipse进行Java开发的过程中,可能会遇到`java.lang.UnsupportedClassVersionError:...

    java 异常种类总结【转】.docx

    java.lang.UnsupportedClassVersionError 是一种不支持的类版本错误,指的是在程序中 Java 虚拟机试图从读取某个类文件,但是发现该文件的主、次版本号不被当前 Java 虚拟机支持的时候,抛出的异常。 33. java.lang...

    java jdk安装向导

    ### Java JDK 安装与Eclipse集成指南 #### 一、前言 本文档旨在指导初学者如何正确安装Java Development Kit (JDK)并配置Eclipse集成开发环境(IDE),以便进行Java应用开发。JDK是Java编程语言的基础工具包,而...

    严重: Servlet.service() for servlet jsp threw exception java.lang.UnsupportedClassVersionError: com/ut

    java.lang.UnsupportedClassVersionError: com/util/PostUtil  at org.apache.jsp.shouye.index_jsp._jspService(index_jsp.java:84)  at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)  ...

    java异常详解

    - **`java.lang.UnsupportedClassVersionError`**:当JVM版本不支持类文件版本时抛出。 - **`java.lang.VirtualMachineError`**:当JVM出现严重错误时抛出,如内存损坏。 了解并掌握这些异常及其处理方法对于编写...

    java编程常见问题

    6. **java.lang.UnsupportedClassVersionError**: 如果编译的类文件版本高于正在运行的JVM版本,就会出现这个错误。确保JVM与编译器版本兼容。 7. **java.lang.VerifyError**: 验证器在类文件加载期间发现内部不...

    AXMLPrinter2、baksmali、smali、dex2jar

    Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass...

    Java编译错误-UnsupportedClassVersionError.txt

    描述部分虽然重复了标题内容,但通过“Java编译错误_UnsupportedClassVersionError.txt”这个文件名,我们可以推断出该文档可能是关于如何理解和解决Java环境中的`UnsupportedClassVersionError`问题的一个技术指南...

    Java异常大全

    - **`java.lang.UnsupportedClassVersionError`**:类版本不受支持时抛出。 ### 异常处理策略 针对以上提到的各种异常,合理的异常处理策略非常重要。以下是一些基本的原则: - **预防优先**:尽可能地预防异常的...

    jeecms源码级安装使用文档

    Jeecms是一款基于Java技术的开源内容管理系统,专为中大型网站提供高效、稳定、灵活的建站解决方案。本文档将深入讲解Jeecms 3.0.4版本的源码安装与使用过程,帮助开发者全面了解其内部机制,以便更好地进行二次开发...

    mysql-connection-java-5.1.28.jar下载j ava.lang.UnsupportedClassVersionError: com/mysql/jdbc/Driver :-附件资源

    mysql-connection-java-5.1.28.jar下载j ava.lang.UnsupportedClassVersionError: com/mysql/jdbc/Driver :-附件资源

    Apktool资源反编译

    apktool1.4.1.tar.bz2 和 apktool-install-windows-r04-brut1.tar.bz2(两个包都下载)反编译apk生成程序的源代码和图片、XML配置、语言资源等文件

    dextojar与baksmali

    当一个APK安装到设备上时,它的Java字节码会被转换为 Dex 文件,以便在设备上运行。 **dextojar** 是一个实用工具,它能够将 Dex 文件转换为 Java 字节码的 JAR 文件。这个过程被称为反编译,因为它将二进制的 Dex ...

    PowerDesigner v15.1汉化破解版

    PowerDesigner v15.1汉化破解版,可直接覆盖安装目录汉化破解

    java异常解决方案.docx

    * java.lang.UnsupportedClassVersionError: Bad version number in .class file + 解决方案:检查 Java 的版本是否正确,是否存在版本不兼容的问题,尝试使用 compatible 的 Java 版本来解决问题。 四、JSP 异常...

    spring-boot-web-JBoss5

    JBoss5 + Java6 + SpringBoot 尝试在 Java6 + JBoss5 上部署 Spring Boot 战争的尝试和错误的残骸。... at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 由于出现如下错误,暂时添加spring-boot-

    java异常exception

    `java.lang.NullPointerException` `NullPointerException`是当程序尝试访问一个为`null`的对象实例的字段、调用其方法或构造函数时抛出的异常。这种异常通常发生在程序员错误地假设某个引用总是指向一个有效的...

Global site tag (gtag.js) - Google Analytics