Class文件结构应用-根据class文件获取class内容
来源:互联网 发布:dump linux进程内存 编辑:程序博客网 时间:2024/05/14 03:26
有时候我们需要根据class文件获取class的内部信息,比如class的完整类名,方法等。注意啊,反射此处貌似行不通,因为只有class文件,不知道类名的。。。
但,我们知道class文件是有规范的,既然有规范,那肯定可以通过规范获取其内部信息。
下面就是class文件结构及class常量池数据数据类型图:
Class文件结构:
Class常量池数据数据类型:
根据Class文件结构及数据类型,我们可以通过以下代码获取类文件内部信息:
/** * 根据class文件获取该类文件中的类名 */@SuppressWarnings("resource")public static String getFullyQualifiedName(File file) throws IOException {//class文件int MAGIC = 0xCAFEBABE;String name = null;try {DataInputStream in = new DataInputStream(new FileInputStream(file));if(in.readInt() != MAGIC) {// 不是一个.class文件throw new IOException("Not a class file");}in.readUnsignedShort();// 次版本号in.readUnsignedShort();// 主版本号in.readUnsignedShort();// 长度in.readByte();// CLASS=7in.readUnsignedShort();// 忽略这个地方in.readByte();// UTF8=E1name =in.readUTF();//类的名字!!!in.close();} catch(IOException ioe) {ioe.printStackTrace();}return name;}
- Class文件结构应用-根据class文件获取class内容
- class文件结构-之一
- Java Class文件结构
- Class文件结构
- Class文件结构
- Java Class文件结构
- java class文件结构
- Java Class文件结构
- Class文件结构
- Class类文件结构
- JVM class文件结构
- class文件结构
- Java Class文件结构
- Class文件结构
- Class文件结构
- Class文件结构
- java class文件结构
- 4.1class文件结构
- Nagios 安装、配置和使用 操作
- web项目新建时更换jdk问题
- 完美二叉树(perfect)与正则二叉树(strict)的概念
- Cookie Session Cache
- git忽略文件方法
- Class文件结构应用-根据class文件获取class内容
- Service与Android系统实现(1)-- 应用程序里的Service
- IIS6.0 性能优化
- 研究搜索引擎获取搜索结果
- 如何快速复制CMD命令窗口中显示的字符
- CXF方式发布WebService全步骤
- 大小端和存储器对齐---转自chinaunix
- OBJECTIVE C (XCODE) 绘图功能简介(转载)
- A. Way Too Long Words