出现java.lang.UnsupportedClassVersionError 错误的原因
来源:互联网 发布:json读取数据库 编辑:程序博客网 时间:2024/05/16 04:33
出现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.lang.UnsupportedClassVersionError 错误的原因
- 出现java.lang.UnsupportedClassVersionError 错误的原因
- 出现java.lang.UnsupportedClassVersionError 错误的原因
- 出现java.lang.UnsupportedClassVersionError 错误的原因
- 出现java.lang.UnsupportedClassVersionError 错误的原因
- 出现java.lang.UnsupportedClassVersionError 错误的原因
- 出现java.lang.UnsupportedClassVersionError 错误的原因
- 出现java.lang.UnsupportedClassVersionError 错误的原因
- 出现java.lang.UnsupportedClassVersionError 错误的原因
- 出现java.lang.UnsupportedClassVersionError 错误的原因
- 出现java.lang.UnsupportedClassVersionError 错误的原因
- 出现java.lang.UnsupportedClassVersionError 错误的原因
- 出现java.lang.UnsupportedClassVersionError 错误的原因
- 【转】出现java.lang.UnsupportedClassVersionError 错误的原因
- 启动出现java.lang.UnsupportedClassVersionError 错误的原因
- 出现 java.lang.UnsupportedClassVersionError 错误的原因及解决方法
- real time,user time,sys time
- 考研目标
- submit 的返回值为false 但表单还是会自动提交,怎么回事?
- 【算法基础】二叉排序树
- 如何修复格式化后的SD卡的数据?有需要的可以参考下。
- 出现java.lang.UnsupportedClassVersionError 错误的原因
- MAC的截图
- 股票F10脱机文件过滤:比尔.盖茨基金13年年报持股情况一览
- Android应用开发——动态图形绘制
- 新的开始
- 微软2014实习生及校招秋令营技术类职位,在线编程题目
- Nuget工具的安装和实际项目基本用法
- CMake偶遇
- linux内核分析--浅析内存管理机制