专业的JAVA编程教程与资源

网站首页 > java教程 正文

class版本不兼容错误原因分析(class更新)

temp10 2025-06-28 16:29:47 java教程 3 ℃ 0 评论

在JDK 1.6工程中使用外部JAR包的时候经常碰到这样的问题:Unsupported major.minor version 51.0。

为了解决这个问题,首先我们要明白:major.minor version的含义。

class版本不兼容错误原因分析(class更新)

major.minor version是在class文件中定义的,表示class文件的版本。例如:

JDK 1.7 –target 1.7 版本号51.0

JDK 1.7 –target 1.6 版本号50.0

JDK 1.7 –target 1.5 版本号49.0

其中,-target指定生成的class文件将保证和哪个版本的虚拟机进行兼容。我们可以通过-target 1.7来保证生成的class文件能在1.7虚拟机上进行运行,但是1.6的虚拟机就不能保证了。在编译过程中,还经常会使用到-source参数,-source 指定用哪个版本的编译器对java源码进行编译。例如:javac -source 1.7 -target 1.7 Test.java

在class文件中,第五字节和第六字节是次版本号,第七字节和第八字节是主版本号。高版本的JDK能向下兼容之前版本的class文件,但是不能运行以后版本的class文件。例如JDK 1.7版本,可生成的class文件主版本号的最大值是51.0。所以,Unsupported major.minor version 51.0错误的原因是:JDK 1.6不能运行JDK 1.7编译的class文件。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表