是否可以暂停正在运行的java应用程序,修复问题,重新编译它,然后从暂停的位置运行它?

是否可以暂停正在运行的java应用程序,修复问题,重新编译它,然后从暂停的位置运行它?,java,eclipse,Java,Eclipse,我正在使用Selenium和Java编写测试。我想知道是否有任何方法可以在调试模式下运行我的代码,然后如果代码中有任何问题,我暂停应用程序,修复它,重新编译它,然后从暂停的位置运行它。我的IDE是EclipseMars。是的,但仅在代码更改较小的有限情况下。你所说的是所谓的热代码替换。下面的解释摘自 热代码替换(HCR)是一种调试技术,Eclipse Java调试器通过调试通道将新类文件传输到 另一个JVM。在Eclipse开发的情况下,这也适用于 运行运行时工作台的VM。想法是你可以开始 在给

我正在使用Selenium和Java编写测试。我想知道是否有任何方法可以在调试模式下运行我的代码,然后如果代码中有任何问题,我暂停应用程序,修复它,重新编译它,然后从暂停的位置运行它。我的IDE是EclipseMars。

是的,但仅在代码更改较小的有限情况下。你所说的是所谓的热代码替换。下面的解释摘自

热代码替换(HCR)是一种调试技术,Eclipse Java调试器通过调试通道将新类文件传输到 另一个JVM。在Eclipse开发的情况下,这也适用于 运行运行时工作台的VM。想法是你可以开始 在给定运行时工作台上调试会话并更改Java 文件,调试器将替换 正在运行的接收VM中的代码。不需要重新启动, 因此提到“热”

HCR已作为标准技术专门添加到Java中,以 促进实验开发并促进迭代 试错编码。HCR仅在类签名不起作用时起作用 不改变;例如,不能删除或向现有类添加字段 例如。但是,HCR可用于更改方法的主体。HCR 仅在1.4.1虚拟机和更高版本上可靠实现,或使用任何 IBMJ9VM的版本。J9在IBM产品中可用,例如 WebSphereStudio设备开发人员™

如果HCR即使在一个简单的Java应用程序中也不适用,那么 已确认您正在受支持的VM上运行应用程序 (请注意,运行Eclipse的JVM可能与 运行Java应用程序的JVM),您可能没有自动 大楼打开了确保启用“项目>自动生成” 选中。


我不这么认为。可以修改断点后发生的代码。这样,在修复问题时,应用程序将保持暂停状态。点击continue后,应该重新调用代码所在的方法。请查看(如果您想使用商业产品,请查看JRebel)。谢谢@AndyThomas。我在EclipseWiki的原始引用中对这一点做了一些强调。在过去的几个小时里,我一直在寻找一个好的完整的HCR教程,但我失败了,你知道吗?试试这个-如果你能帮助我,你能看看这个和se吗