获取class文件的编译级别
来源:互联网 发布:java全局变量怎么定义 编辑:程序博客网 时间:2024/06/05 15:01
概念:
1、魔数(magic)
用于标识文件是否为class文件,由4个字节构成,必须为:0xCAFEBABE
2、版本号(version)
4个字节,前两个字节为次版本号,后两个字节为主版本号,且都是高位在前,低位在后。
class文件的前8个字节为:magic+minor_version+major_version, 以16进制表示,两位构成一个字节。
具体代码:
private static final String filePath = "e:/Test.class";public static void main(String args[]) {try {// 读取class文件,filePath为文件路径FileInputStream fis = new FileInputStream(filePath);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.println("参考值:");System.out.println("魔数:0xCAFEBABE");System.out.println("版本号:49.0=5.0,50.0=6.0,46.0=1.4,45.3=1.3");System.out.println("该文件信息:");System.out.print("魔数:0x");System.out.print(Integer.toHexString(data[0]).substring(6).toUpperCase()+ Integer.toHexString(data[1]).substring(6).toUpperCase()+ Integer.toHexString(data[2]).substring(6).toUpperCase()+ 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("版本号:" + major_version + "." + minor_version);}/** * Integer范围(长度为32位):-2^31——(2^31-1); 负数,计算机存储补码,绝对值的2进制,取反,加1 * */
- 获取class文件的编译级别
- 查询class文件编译级别
- 获取项目编译后class文件绝对路径
- SVN导出增量包 ,并获取本地编译的class文件
- 查看class文件的编译jdk版本
- java编译后的class文件
- 查看java编译后的.class文件
- Android添加编译过的class文件
- Java class文件的JDK编译版本号
- eclipse编译好的class文件
- 编译class文件“$”符号的含义
- 查看java class文件的编译版本号
- Java class文件的JDK编译版本号
- 找到编译后的.class文件
- 查看Scala编译的.class文件
- eclipse编译的class文件在哪里
- 查看class 文件编译的jdk 版本号
- 获取类的class文件的绝对路径
- 图片转换二进制流-二进制流转换图片保存(winform、Wince程序通用)
- VB 循环播放视频文件
- ohmygod
- 三层架构之初识庐山真面目
- Mysql 之 ALTER TABLE
- 获取class文件的编译级别
- iOS:UIViewController周期、属性和相关方法
- crond 笔记
- 解决Jar mismatch! Fix your dependencies
- Android编译和运行原理
- HDU1239:Calling Extraterrestrial Intelligence Again
- C#入门经典第五版 示例 3
- JSON格式的数据
- 在Eclipse下部署Jeecms项目图文指南