您当前的位置: 首页 >  段智华 jvm

JVM 学习 第 2 课 虚拟机class文件从哪里寻找?哪里来?

段智华 发布时间:2016-12-19 20:56:31 ,浏览量:5

JVM 学习 第 2 课


go  代码从压缩文件中查找参数中输入的文件,如从

C:\Program Files\Java\jdk1.8.0_65\jre\lib\rt.jar 中找到java/lang/Object.class,并读取java/lang/Object.class的数据。 

func (self *ZipEntry) readClass(className string) ([]byte, Entry, error) {
r, err := zip.OpenReader(self.absPath)
if err != nil {
return nil, nil, err
}


defer r.Close()
for _, f := range r.File {




if f.Name == className {

fmt.Printf("imf zipfile ReadClass %v\n    ", className)
fmt.Printf("imf  zip OpenReader self absPath  %v\n    ",  self.absPath )
fmt.Printf("   \n  " )
  fmt.Printf("  \n  " )
rc, err := f.Open()
if err != nil {
return nil, nil, err
}


defer rc.Close()
data, err := ioutil.ReadAll(rc)
if err != nil {
return nil, nil, err
}


return data, self, nil
}
}


return nil, nil, errors.New("class not found: " + className)
}


















关注
打赏
查看更多评论

段智华

暂无认证

  • 5浏览

    0关注

    1232博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录