java - eclipse 是否使用 Java Instrumentation API 进行热代码替换

标签 java eclipse

我最近有一项任务,我必须使用代码热替换功能。所以我使用 tools.jar 中提供的 Java Instrumentation API 完成了它。

eclipse 是否使用一些不同的逻辑来热替换新类文件或使用相同的 Java API? 我尝试从某些地方阅读但不清楚:

Eclipse Java debugger transmits new class files over the debugging channel to another JVM

Eclipse Hot Code Replace 中的这一行不清楚。

最佳答案

我相信 eclipse 使用相同的逻辑,它们都依赖于称为 JVMTI 的 native 接口(interface)。 JVMTI 提供工具来检查状态,并控制在 Java 虚拟机中运行的应用程序的执行。

Java Instrumentation Implementation中有JVMTI的代理。与 vm 对话并执行某些任务的代理。它也有 redefineClasses 方法。

Eclipse Java调试器或其他工具使用JPDA(Java Platform Debugger Architecture),JPDA主要有三部分(JVMTI、JDWP、JDI)。 JVMTI作为被调试器,JDI作为调试器,JDWP作为它们之间的通信 channel 。

最后,他们都与 JVMTI 对话,并且它使用相同的逻辑。

关于java - eclipse 是否使用 Java Instrumentation API 进行热代码替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14414215/

相关文章:

eclipse - Tomcat 和 Eclipse 集成

java - 表达式的类型必须是数组类型,但它解析为对象

java - 使用 java 通过诺基亚手机从 PC 发送和读取 SMS

java - 调试 RestTemplate 发布请求

java - 互相关 : Android AudioRecord create sample data for TDoA

java - 实现 onclicklistener 不起作用?

java - 当项目转换为可执行 jar 时,序列化文件不起作用?

eclipse - Xtext 与 GMF 集成

java - 在 TableViewer 上选择 SWT 图形颜色后消失

java - 如何在WebLogic 8中使用线程池?