网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  java基础:从.class文件中寻找类名     
  文章作者:未知  文章来源:水木森林  
  查看:139次  录入:管理员--2007-11-17  
 
  可以有多种方式判断类的名字:

假定所有的类都以com,org,或者net开头
搜索classpath来寻找名字为hack的类
搜索classpath来寻找映射到这个文件的目录入口
直接查看类自身。对于所有的情况下,这是最直接的
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文件工作的应用的重要部件。
 
 
上一篇: java se 6之脚本引擎 让程序如虎添翼    下一篇: 在java中使用枚举
  相关文档
用java多媒体框架实现自播放 11-16
学习更多 11-17
jml起步--使用jml改进你的java程序(1) 11-17
javai/oapi之性能分析(上) 11-17
java+xml将数据导入sql server中 11-16
java技巧:hello world ant 11-17
基于j2ee的三层b/s信息系统研究 11-17
j2se综合--区分eclipse中的两种jre 01-09
[java100例]078、播放声音 11-17
探索j2me:创建开销细节表单 11-17
[portal参考手册]目录 11-17
数据类型 11-17
阴阳历算法(转) 11-17
helloworld 攻略 11-17
如何掌握java(j2se篇) 11-16
用java+mysql+php轻松构建跨平台的搜索引擎 11-16
一个表达式计算案例的设计和实现 11-17
java面向对象的思维方法 11-17
了解hibernate的flushmode.never模式 11-17
eclipse中用swt和jface开发入门 11-16
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
技术电话:13616026886
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息