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

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)
}


















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

段智华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值