【发布时间】:2011-09-01 18:19:28
【问题描述】:
我正在使用附加 API 在运行时加载 JVMTI 代理。我想在我的程序完成时卸载 JVMTI 代理,而不终止加载代理的 JVM。根据this documentation,无法从附加 API 执行此操作。是否有任何其他方法可以强制代理通过 Java API 或从 JVMTI 代理中卸载自身?
【问题讨论】:
-
这并不意味着是一个正确的答案,而只是一个建议。 JNI 也有类似的问题(我想卸载一个模块)。我发现的最佳解决方案很简单:生成一个新的 JVM 实例来处理模块,等待它终止,然后当它终止时,模块显然会被卸载。我敢打赌,在挣扎了一段时间之后,你会结束这样做。我建议你跳过“斗争”阶段:P