转贴:关于出现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。
它通过修改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错误发生了!
--------------------------------------------------------------------------------------------------------------------------------
自己评价:看来选好jdk,tomcat的版本也是很重要的.
我的项目也是这个原因,后来我把jdk换成1.5以后,就ok了.
因为我的项目的编译可能也是通过jdk 1.5的时候编译的,当从新导到另一个环境中我用的是jdk1.4 自然就不可以了.
分享到:
相关推荐
当出现`java.lang.UnsupportedClassVersionError`错误时,通常是因为编译Java源代码所使用的JDK版本与目标系统上的JRE版本不兼容。例如,在上述案例中,项目部署时遇到了以下异常: ```log 2019-03-1823:19:27[org....
通过上述两种方法,可以有效地解决编译或运行时出现的`java.lang.UnsupportedClassVersionError`问题。关键在于确保编译和运行所使用的JDK版本保持一致。此外,还需要注意IDE的配置是否正确,尤其是与JDK相关的路径...
在使用MyEclipse进行Java开发的过程中,可能会遇到`java.lang.UnsupportedClassVersionError: Bad version number in .class file`这样的错误提示。这种错误通常发生在编译器版本与实际使用的JVM版本不匹配的情况下...
java.lang.UnsupportedClassVersionError 是一种不支持的类版本错误,指的是在程序中 Java 虚拟机试图从读取某个类文件,但是发现该文件的主、次版本号不被当前 Java 虚拟机支持的时候,抛出的异常。 33. java.lang...
### Java JDK 安装与Eclipse集成指南 #### 一、前言 本文档旨在指导初学者如何正确安装Java Development Kit (JDK)并配置Eclipse集成开发环境(IDE),以便进行Java应用开发。JDK是Java编程语言的基础工具包,而...
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编译错误_UnsupportedClassVersionError.txt”这个文件名,我们可以推断出该文档可能是关于如何理解和解决Java环境中的`UnsupportedClassVersionError`问题的一个技术指南...
当运行时出现类似 `java.lang.UnsupportedClassVersionError: Bad version number in .class file` 的异常时,这通常意味着当前使用的JDK版本与编译代码时所用的JDK版本不一致。 **解决办法:** - **确认JDK版本...
6. **java.lang.UnsupportedClassVersionError**: 如果编译的类文件版本高于正在运行的JVM版本,就会出现这个错误。确保JVM与编译器版本兼容。 7. **java.lang.VerifyError**: 验证器在类文件加载期间发现内部不...
- **`java.lang.VirtualMachineError`**:当JVM出现严重错误时抛出,如内存损坏。 了解并掌握这些异常及其处理方法对于编写健壮、可靠的Java应用程序至关重要。在实际开发过程中,合理地使用异常处理机制可以帮助...
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中常见错误和异常类型的详细解释: 1. **算术异常类:Arithmetic...
- **`java.lang.UnsupportedClassVersionError`**:类版本不受支持时抛出。 ### 异常处理策略 针对以上提到的各种异常,合理的异常处理策略非常重要。以下是一些基本的原则: - **预防优先**:尽可能地预防异常的...
Jeecms是一款基于Java技术的开源内容管理系统,专为中大型网站提供高效、稳定、灵活的建站解决方案。本文档将深入讲解Jeecms 3.0.4版本的源码安装与使用过程,帮助开发者全面了解其内部机制,以便更好地进行二次开发...
`java.lang.UnsupportedClassVersionError`: Bad version number in .class file** - **异常描述**:类文件版本与JVM版本不兼容。 - **原因分析**:编译时使用的JDK版本高于运行时的JDK版本。 - **解决方案**: -...
* java.lang.UnsupportedClassVersionError: Bad version number in .class file + 解决方案:检查 Java 的版本是否正确,是否存在版本不兼容的问题,尝试使用 compatible 的 Java 版本来解决问题。 四、JSP 异常...
hadoop jar wc.jar com.atguigu.mapreduce.wordcount.WordCountDriver /user/atguigu/ /user/atguigu/output报如下错误:Exception in thread "main" java.lang.UnsupportedClassVersionError: ...
mysql-connection-java-5.1.28.jar下载j ava.lang.UnsupportedClassVersionError: com/mysql/jdbc/Driver :-附件资源