我最近有一个任务,我不得不使用热代码替换功能.所以我使用tools.jar中提供的Java Instrumentation API来完成它.
eclipse是否使用一些不同的逻辑来替换新的类文件或使用相同的Java API?我试着从一些地方读书,但不清楚:
Eclipse Java调试器通过调试通道将新类文件传输到另一个JVM
Eclipse Hot Code Replace中的这一行并不清楚.
我相信eclipse使用相同的逻辑,它们都依赖于一个名为JVMTI的本地接口.JVMTI提供了检查状态和控制Java虚拟机中运行的应用程序执行的工具.
Java Instrumentation Implementation中有一个JVMTI代理.代理与vm对话并执行某些任务.它还有redefineClasses方法.
Eclipse Java调试器或其他工具使用JPDA(Java平台调试器架构),JPDA主要有三个部分(JVMTI,JDWP,JDI).JVMTI充当调试对象,JDI充当调试器,JDWP充当它们之间的通信通道.
最后,他们都与JVMTI交谈,并使用相同的逻辑.
归档时间: |
|
查看次数: |
892 次 |
最近记录: |