`

关于出现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 一起使用。
来源:(http://blog.sina.com.cn/s/blog_4aa09d230100bu2u.html) - 关于出现java.lang.UnsupportedClassVersionError_大雪无痕_新浪博客

它通过修改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错误发生了!

来源:(http://blog.sina.com.cn/s/blog_4aa09d230100bu2u.html) - 关于出现java.lang.UnsupportedClassVersionError_大雪无痕_新浪博客

分享到:
评论

相关推荐

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

    通过上述两种方法,可以有效地解决编译或运行时出现的`java.lang.UnsupportedClassVersionError`问题。关键在于确保编译和运行所使用的JDK版本保持一致。此外,还需要注意IDE的配置是否正确,尤其是与JDK相关的路径...

    java.lang.UnsupportedClassVersionError问题解决

    当出现`java.lang.UnsupportedClassVersionError`错误时,通常是因为编译Java源代码所使用的JDK版本与目标系统上的JRE版本不兼容。例如,在上述案例中,项目部署时遇到了以下异常: ```log 2019-03-1823:19:27[org....

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

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

    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异常大全

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

    spring-boot-web-JBoss5

    java.lang.UnsupportedClassVersionError: org/apache/catalina/authenticator/FormAuthenticator : Unsupported major.minor version 51.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang....

    java异常exception

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

    处理MyEclipse中出现的问题.txt

    通过以上详细的步骤,我们可以有效地解决MyEclipse中出现的`java.lang.UnsupportedClassVersionError`问题。此外,在日常开发中,保持良好的编码习惯以及定期检查项目依赖也是预防此类问题的关键。希望本文能够帮助...

    java 遇到的各种异常

    `java.lang.UnsupportedClassVersionError`: Bad version number in .class file** - **异常描述**:类文件版本与JVM版本不兼容。 - **原因分析**:编译时使用的JDK版本高于运行时的JDK版本。 - **解决方案**: -...

    22_尚硅谷大数据之MapReduce_常见错误及解决方案1

    9. 出现了如下相关异常Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z ...。解决方案:拷贝hadoop.dll文件到Windows...

    java程序调试错误收集

    当运行时出现类似 `java.lang.UnsupportedClassVersionError: Bad version number in .class file` 的异常时,这通常意味着当前使用的JDK版本与编译代码时所用的JDK版本不一致。 **解决办法:** - **确认JDK版本...

    java项目开发中常见异常

     1 java.lang.UnsupportedClassVersionError  从字面上我们可以看出来是类版本不支持错误,换句话是jdk版本不兼容,原因是因为我们在高版本上编译class,在低版本的jvm中运行,这是我搜到的答案。理解起来还好。...

    java 异常总结

    - **定义**:执行SQL操作时出现错误时抛出。 - **示例**:数据库连接失败、SQL语法错误等。 ##### 11. **输入输出异常**:`IOException` - **定义**:进行输入输出操作时发生错误时抛出。 - **示例**:文件读写...

    JAVA常见异常整理.docx

    在Java中,异常是通过类的实例来表示的,这些类都继承自`java.lang.Throwable`类,它是所有异常和错误的根类。异常分为两种主要类型:Error和Exception。 1. **Error**: - `Error`类是所有错误的基类,通常表示...

    Java 免费给手机发飞信

    2. **JDK版本要求**:由于代码中使用了一些较新的Java特性,因此需要确保安装的是JDK 1.6或更高版本,否则可能会遇到`java.lang.UnsupportedClassVersionError`错误。 3. **License配置**:为了正常使用该库,还需要...

    Java程序调试与错误收集--非代码引起的报错

    在Java应用部署过程中,如果遇到`java.lang.UnsupportedClassVersionError: Bad version number in .class file`这样的异常,通常是因为当前运行环境(如MyEclipse中使用的JDK版本)与编译时使用的JDK版本不一致。...

Global site tag (gtag.js) - Google Analytics