`
fantaxy025025
  • 浏览: 1329379 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Java异常.UnsupportedClassVersionError

 
阅读更多

题记

    尤其是升级版本,包括包和jdk等,都要关注一下版本信息。

    jdk8(1.8)之后的几年,估计这个世界又要有无数的程序员的时间浪费在版本一致性问题上了。

    仅就这个问题,java界的包都应该标识一下,并且需要一个程序来扫描此类问题,以在事前就能发现问题,而不是runtime的时候去用肉眼扫描无数行的stack信息,再去猜测无数种可能中最傻的一种出错结果。

    btw,这是不是说,过程管理越来越重要了呢。

 

========================================================================

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错误。

 

===============================================================

http://www.thinksaas.cn/group/topic/200554/

在网上查了很多资料都是说本机装了两个JDK,JDK版本不同间的冲突. 但我本机只有一个JDK. 不应该是这个问题. 重装了JDK都没用. 还是同事厉害,找到问题所在了.见下图:

<?xml version="1.0"encoding="UTF-8"?>
<faceted-project>
 <fixed facet="jst.java"/>
 <fixed facet="jst.utility"/>
 <installed facet="jst.java"version="5.0"/>
 <installed facet="jst.utility"version="1.0"/>
</faceted-project>

里面的5.0是修改后的,修改前是6.0.

#Mon Jan 28 15:04:15 CST 2008
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
org.eclipse.jdt.core.compiler.compliance=1.5
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.5

里面的1.5都是从1.6修改过来的. 这个项目是从同事手中交接过来的,同事是使用JDK1.6的. 修改后,重启tomcat,问题解决了.

 

 

分享到:
评论

相关推荐

    java.lang.UnsupportedClassVersionError问题解决

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

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

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

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

    在开发Java应用程序的过程中,经常会遇到与JDK版本不兼容的问题,其中一种常见的异常就是`java.lang.UnsupportedClassVersionError`。该错误通常发生在试图用一个较低版本的JDK加载由较高版本JDK编译的类文件时。...

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

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

    Java编译错误-UnsupportedClassVersionError.txt

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

    JAVA异常详解.doc

    Java异常处理是编程中至关重要的一个部分,它用于处理程序运行时出现的错误和异常情况。Java异常体系是基于面向对象的设计,使得错误处理更加结构化和可维护。以下是Java异常的一些主要类别和相关知识点: 1. **...

    Java常见异常大全.pdf

    在Java程序设计中,异常处理是程序健壮性的重要组成部分。Java提供了一套丰富的异常类来帮助开发人员处理在程序执行过程中可能发生的错误。本文档列出了Java中常见的异常类型,并简要描述了这些异常的含义以及可能...

    java异常解决方案.docx

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

    Java常见异常.pdf

    Java异常处理是编程中至关重要的一个部分,它帮助开发者识别并处理程序运行时可能出现的问题。在Java中,异常被组织成一个层次结构,根类是`Throwable`,它有两个主要的子类:`Error`和`Exception`。`Error`通常用于...

    Java异常大全

    ### Java异常大全 在Java编程过程中,异常处理是不可或缺的一部分,它可以帮助开发者更好地管理程序运行时可能出现的问题。本文将对常见的Java异常进行详细介绍,并提供一些基本的处理策略。 #### 1. `java.lang....

    java异常汇总.txt

    ### Java异常概述与详解 在Java编程中,异常处理是一种重要的机制,用于处理程序执行过程中可能出现的错误或异常情况。Java中的异常分为两大类:**受检异常**(Checked Exceptions)和**非受检异常**(Unchecked ...

    java异常详解

    ### Java异常详解 #### 1. `java.lang.NullPointerException` `java.lang.NullPointerException`是一种运行时异常,当尝试访问一个尚未被初始化或已初始化但值为`null`的对象时触发。这种异常通常发生在以下几种...

    Java异常详解.txt

    ### Java异常详解 #### 标题与描述解读 在Java编程语言中,异常处理机制是一项重要的功能特性,它能够帮助开发者有效地捕捉并处理程序运行时出现的问题或错误情况。本篇文档《Java异常详解》旨在深入探讨Java中的...

    JAVA常见异常整理.docx

    Java异常处理是编程中至关重要的部分,它帮助程序员在程序执行过程中捕获并处理错误情况。在Java中,异常是通过类的实例来表示的,这些类都继承自`java.lang.Throwable`类,它是所有异常和错误的根类。异常分为两种...

    java异常总结.pdf

    Java异常处理是编程中至关重要的一个环节,它帮助开发者识别并修复程序运行时出现的问题。在Java中,异常被组织成一个层次结构,根类是`java.lang.Throwable`,它有两个主要的子类:`Error`和`Exception`。`Error`...

    Java中常见异常类型及分析.pdf

    ### Java中常见异常类型及分析 #### 一、概述 在Java编程中,异常处理是一项重要的技术,它有助于开发者在程序运行过程中及时发现并处理错误,确保程序的稳定性和健壮性。Java语言中提供了丰富的异常处理机制,...

    java编程常见问题

    以下是一些常见的Java异常及其详细解释: 1. **java.lang.OutOfMemoryError**: 当Java虚拟机无法分配足够的内存给一个新的对象时,会抛出此错误。这通常是因为程序消耗了过多的内存,超出了系统可用的内存限制。...

    JAVA异常大全

    Java异常处理是编程过程中的重要组成部分,它帮助开发者在程序执行期间识别并处理错误和意外情况。Java异常是程序运行时出现的不正常状态,它们通常由Java虚拟机(JVM)或者Java类库在遇到特定问题时抛出。异常分为...

    java 遇到的各种异常

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

    Java常见异常类型及原因分析(下).pdf

    在文档《Java常见异常类型及原因分析(下)》中,介绍了几种常见的Java异常类型及其产生原因,并提供了相应的分析。 首先,ArrayIndexOutOfBoundsException异常是在进行数组操作时最常见的异常之一。这个异常发生在...

Global site tag (gtag.js) - Google Analytics