假设我们正在编写Java Swing应用程序,我们使用Eclipse或MyEclipse来开发它。在Web应用程序中,您可以进行代码更改,保存并且您的ant部署文件负责部署已更改的文件。然后,您只需刷新或硬刷新网页,就会出现更改。我们可以为Swing应用程序做同样的事情,这样我们就不必在每次进行更改时从头开始关闭和打开程序吗?
答案 0 :(得分:0)
我不这么认为,因为你需要热代码更换!也许使用另一种框架。
答案 1 :(得分:0)
你不能简单地这样做,因为一旦JVM启动,它会加载一次类文件,并且不会重新加载它,直到下一个加载请求。但您可以使用ClassLoader
动态加载修改后的类文件。
以下两篇文章可能有所帮助:
第一个是中文,但你可以查看代码和结果。我认为第二篇文章对GUI应用程序更有帮助。
答案 2 :(得分:0)
在MyEclipse中,您可以在调试模式而不是运行模式下启动应用程序,并且您所做的更改将被推送到目标VM;如果您所做的更改无法替换,您将看到一个对话框,通知您替换失败,您将需要重新启动您的应用程序。您不需要在应用程序中放置任何断点,只需在调试模式下启动就足够了。
正如Guillaume所述,对类结构的更改通常不是热同步的,但现有方法中的更改应该没问题。
显然,热同步更改对运行的应用程序的影响程度取决于您的应用程序设计。