查看Jar打包的jdk版本

来源:互联网 发布:真维斯淘宝 编辑:程序博客网 时间:2024/05/19 19:58

(以 qiniu-android-sdk-7.1.2.jar 为例子)

第一种方式:

直接解压jar,随便找到其中一个类,通过以下代码进行查询

public class VersionMain {    private static final int JAVA_CLASS_MAGIC = 0xCAFEBABE;    public static void main(String[] args) {        try {            // 随便一个class路径            String path = "H:\\异常\\qiniu-android-sdk-7.1.2\\com\\qiniu\\android\\common\\Constants.class";            DataInputStream dis = new DataInputStream(new FileInputStream(path));            int magic = dis.readInt();            if (magic == JAVA_CLASS_MAGIC) {                int minorVersion = dis.readUnsignedShort();                int majorVersion = dis.readUnsignedShort();                // Java 1.2 uses major version 46                // Java 1.3 uses major version 47                // Java 1.4 uses major version 48                // Java 5 uses major version 49                // Java 6 uses major version 50                // Java 7 uses major version 51                System.out.println("ClassVersionTest.main() " + majorVersion + "." + minorVersion);            }        } catch (Exception e) {            e.printStackTrace();        }    }}// 最后打印的结果是:// ClassVersionTest.main() 51.0// 表明这个jar,是以jdk 1.7的版本打包的

第二种方式:

直接用二进制编辑工具(例如Uedit32),打开class
这里写图片描述

会有以下的显示: CA FE BA BE 00 00 00 33
33是编译这个类的JDK版本。
33表示51,是JDK1.7;32表示50,是JDK1.6 依次类推。

0 0