JBOSS 点滴

丰丰的博客

通过class文件,看版本

import java.io.FileInputStream;

public class ParseClassFile {

    public static void main(String args[]) {

        try {

            // 读取文件数据,文件是当前目录下的First.class

            FileInputStream fis = new FileInputStream("e:/logout_jsp.class");

            int length = fis.available();

            // 文件数据

            byte[] data = new byte[length];

            // 读取文件到字节数组

            fis.read(data);

            // 关闭文件

            fis.close();

            // 解析文件数据

            parseFile(data);

        } catch (Exception e) {

            System.out.println(e);

        }

    }

    private static void parseFile(byte[] data) {

        // 输出魔数

        System.out.print("魔数(magic):0x");

        System.out.print(Integer.toHexString(data[0]).substring(6)
                .toUpperCase());

        System.out.print(Integer.toHexString(data[1]).substring(6)
                .toUpperCase());

        System.out.print(Integer.toHexString(data[2]).substring(6)
                .toUpperCase());

        System.out.println(Integer.toHexString(data[3]).substring(6)
                .toUpperCase());

        // 主版本号和次版本号码
        int minor_version = (((int) data[4]) << 8) + data[5];

        int major_version = (((int) data[6]) << 8) + data[7];

        System.out.println("版本号(version):" + major_version + "."
                + minor_version);

    }

}

 

运行:

E:\>javac ParseClassFile.java

E:\>java  ParseClassFile
魔数(magic):0xCAFEBABE
版本号(version):48.0
48代表JDK1.5.0

posted on 2009-07-16 11:25 半导体 阅读(361) 评论(0)  编辑  收藏 所属分类: Eclipse


只有注册用户登录后才能发表评论。


网站导航: