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

时间:2016-04-01 19:27:49

标签: java eclipse

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

1 个答案:

答案 0 :(得分:3)

是的,但仅限于代码更改较小的有限情况。你所说的是热代码替换。以下说明取自Eclipse Wiki

  

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

     

HCR已被特别添加为Java的标准技术   促进实验发展和促进迭代   试错编码。 HCR仅在类签名时才有效   没变;您无法删除或添加现有类的字段   实例。但是,HCR可用于更改方法的主体。 HCR   仅在1.4.1 VM及更高版本上可靠地实现,或者使用任何   IBM J9 VM的版本。 J9适用于IBM等产品   Websphere Studio Device Developer™。

     

如果HCR即使在简单的Java应用程序中也不适合您   已确认您在受支持的VM上运行该应用程序   (请注意,运行Eclipse的JVM可能与运行Eclipse的JVM不同   运行Java应用程序的JVM),您可能没有自动化   建筑打开了。 确保'项目>自动构建'是   检查。