Endorsed Standards Override Mechanism机制学习——debug java源代码方法

java的源码在debug的时候是不能看到局部变量的值的,只能看到调用的参数的值,这是因为sun 发布的jar包里的class文件编译的时候并没有带上debug信息,这对于理解java源码的内部实现很不方便。使用Endorsed Standards Override Mechanism机制可以实现看到局部变量的值。

http://docs.oracle.com/javase/1.4.2/docs/guide/standards/这是Endorsed Standards Override Mechanism机制的官方文档。注意虽然只有列出的包能被覆盖,但是使用sun的虚拟机则所有的二进制文件都能被覆盖。

首先是编译带有debug信息的class文件。从jdk的根目录下的src.zip取出对应的class文件。使用javac -g *.java能编译目录下所有java文件,-g即为添加debug信息。将这些class文件打成jar包 jar -cvf a.jar ./   (将当前目录下所有文件和目录打入jar包a.jar)注意不打成jar包似乎是不会被jvm检索到的。

然后将jar包放入指定的目录,官方文档写的是

<java-home>\lib\endorsed          [Microsoft Windows]
<java-home>/lib/endorsed          [Solaris or Linux]
我尝试的结果却是%java_home%\jre\lib\endorsed,这一点太坑爹,浪费了好多时间。
然后就可以在myeclipse里看到java源码的debug信息了,注意myeclipse是自带一个jdk的,需要手动修改成sun的jdk才行:window—preferences—java—installed JREs,
右边add sun的虚拟机的路径,然后选择该虚拟机就行了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值