java.lang.UnsupportedClassVersionError: lee/GetApplication : Unsupported major.minor version 52.0

unsupported major.minor version 解决方法

url: http://www.blogjava.net/Jay2009/archive/2009/04/23/267108.html
一直以来都是用jdk1.5,这次重返电信由于其系统是在jdk1.4上编译的,编译的时候出现了unsupported major.minor version49.0的错误,上网查看了一下还是一个很普遍的错误,捣鼓了两天终于捣鼓出一些东西,现分享给大家。
何谓 major.minor,且又居身于何处呢?先感性认识并找到 major.minor 来。顺便写一段 代码,然后用 JDK 1.5 的编译器编译成class,用UltraEdit或者其他能打开非十进制文件的软件打开此class,见下图:
这里写图片描述
从上图中我们看出来了什么是 major.minor version 了,它相当于一个软件的主次版本号,只是在这里是标识的一个 Java Class 的主版本号和次版本号,同时我们看到 minor_version 为 0x0000,major_version 为 0x0031,转换为十制数分别为0 和 49,即 major.minor 就是 49.0 了。
现在不妨从 JDK 1.1 到 JDK 1.7 编译器编译出的 class 的默认 minor.major version 吧。(又走到 Sun 的网站上翻腾出我从来都没用过的古董来)
这里写图片描述
当然你也可以用其他方法查看版本号,比如javap -verbose XXXX(class名)。

那么现在如果碰到这种问题该知道如何解决了吧,还会像我所见到有些兄弟那样,去找个 1.4 的 JDK 下载安装,然后用其重新编译所有的代码吗?且不说这种方法的繁琐,而且web应用程序还不一定能成功,其实大可不必如此费神,我们一定还记得 javac 还有个 -target 参数,对啦,可以继续使用 1.5 JDK,编译时带上参数 -target 1.4 -source 1.4 就 OK 啦,不过你一定要对哪些 API 是 1.5 JDK 加入进来的了如指掌,不能你的 class 文件拿到 JVM 1.4 下就会 method not found。目标 JVM 是 1.3 的话,编译选项就用 -target 1.3 -source 1.3 了。

相应的如果使用 ant ,它的 javac 任务也可对应的选择 target 和 source

<javac target="1.4" source="1.4" ............................/>

如果是在开发中,可以肯定的是现在真正算得上是 JAVA IDE 对于工程也都有编译选项设置目标代码的。例如 Eclipse 的项目属性中的 Java Compiler 设置,如图:
这里写图片描述
其实理解 major.minor 就像是我们可以这么想像,同样是微软件的程序,32 位的应用程序不能拿到 16 位系统中执行那样。
如果我们发布前了解到目标 JVM 版本,知道怎么从 java class 文件中看出 major.minor 版本来,就不用等到服务器报出异常才着手去解决,也就能预知到可能发生的问题。
其他时候遇到这个问题应具体解决,总之问题的根由是低版本的 JVM 无法加载高版本的 class 文件造成的,找到高版本的 class 文件处理一下就行了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于您遇到的`java.lang.UnsupportedClassVersionError: edu/hnuahe/lixu/HelloWorld : Unsupported major.minor version 52.0`错误,这是由于您正在尝试运行的Java类文件的版本与Java运行时环境(JRE)的版本不兼容所引起的。 这个错误通常发生在您正在使用一个较新版本的Java编译器(如Java 8)来编译您的代码,然后将该代码尝试在较旧版本的JRE(如Java 7)上运行。导致这种不兼容的原因是因为类文件的版本大于JRE所能识别的版本。 要解决这个问题,您可以尝试以下几个步骤: 1. 确保您正在使用与您的JRE版本相匹配的Java编译器来编译您的代码。如果您的JRE版本是Java 8,则应使用Java 8编译器。 2. 确认您的JRE版本是否支持您要运行的Java类文件的版本。在这种情况下,版本号52.0表示您的Java类文件是使用Java 8编译的。 3. 如果您的JRE版本较旧且不支持Java 8编译的类文件,则可以尝试升级您的JRE版本以与您的类文件兼容。 4. 如果您无法升级JRE版本,您可以尝试通过使用较旧版本的Java编译器重新编译您的代码,以便生成与您的JRE版本兼容的类文件。 总结一下,要解决`java.lang.UnsupportedClassVersionError: edu/hnuahe/lixu/HelloWorld : Unsupported major.minor version 52.0`错误,您需要确保您的Java类文件版本与您的JRE版本兼容。您可以通过升级JRE版本或重新编译代码来解决此问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值