3

我在 Eclipse 和 IntelliJ IDE 中使用了 DCEVM 热插拔技术,这是一个非常酷的功能。通过在 IDE 中使用 DCEVM,我可以在运行时更改为源代码,即添加/删除/编辑方法、类、属性,而无需重新启动程序。

现在我的问题是: 我想在不使用任何 IDE 的情况下运行的应用程序中应用相同的功能。更具体地说,正在运行的应用程序源代码(编译代码)可以即时更改。对于该字节码,如何在 DCEVM 上部署以进行运行时热交换?

我发现: 我们可以在不使用 IDE 的情况下进行热交换,因为我们可以编写自己的 JNI 代码直接挂接到 JVMTI 并触发热交换。

任何想法/帮助都会很有帮助。谢谢

4

1 回答 1

1

幸运的是我找到了解决方案。我们可以使用HotSwapper插件来解决此类问题。在 dcevm 讨论论坛中提出了同样的问题:

https://groups.google.com/forum/#!topic/hotswapagent/Uk3cUdkHNYQ

虽然这个链接https://news.ycombinator.com/item?id=3198497的信息很有帮助,但是四年前就被问到了,让我陷入了困境。

现在DCEVM变得更加智能它可以支持各种插件,例如 Hotswapper、AnonymousClassPatch、WatchResources、Hibernate、Spring、Jersey2、Jetty、Tomcat、ZK、Logback、JSF、Seam、ELResolver、OsgiEquinox,甚至我们也可以编写自己的插件更容易开发。

于 2015-07-31T06:33:50.773 回答