JAVA基础之如何从.class文件中寻找类名

转帖|其它|编辑:郝浩|2008-11-19 10:15:40.000|阅读 839 次

概述:JAVA基础之如何从.class文件中寻找类名

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

  Java规范规定了如何查看一个class文件。存储在class文件一开始的一个值就是以Java内部分割符“/”为格式的完整的类明。

  下面的代码返回了文件C:\code\hacks\research\com\generationjava\Hack.class的内部类名com/generationjava/Hack,读者可以进一步编写代码将“/”转换成“.”:

  static final public int MAGIC = 0xCAFEBABE;
  // 传递C:\code\hacks\research\com\generationjava\Hack.class

  // 假定存在这样一个

  public String getFullyQualifiedName(String filename) throws IOException {

    String name = null;

    try {

      DataInputStream in = new

      DataInputStream(new FileInputStream(filename));

      if(in.readInt() != MAGIC) {

        // 不是一个.class文件

        thrownew IOException("Not a class file");

      }

      in.readUnsignedShort();// 次版本号

      in.readUnsignedShort();// 主版本号

      in.readUnsignedShort();// 长度

      in.readByte();// CLASS=7

      in.readUnsignedShort();// 忽略这个地方

      in.readByte();// UTF8=1

      name =in.readUTF();//的名字!!!

      in.close();

    } catch(IOException ioe) {

      ioe.printStackTrace();

    }

    return name;

  }
 
  当你直接从.class文件中获得类的信息的时候,就简化了开发。查找一个匿名.class类文件的完整的类名是任何基于.class文件工作的应用的重要部件。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:IT专家网论坛

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP