如何在不使用IDE的情况下进行HotSwapping?

时间:2015-07-30 06:09:38

标签: jvm hotswap jvmti dcevm

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

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

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

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

1 个答案:

答案 0 :(得分: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甚至我们也可以编写自己的插件,更容易开发。