重新编译并重新启动java而不会丢失状态

时间:2016-11-19 17:15:27

标签: java

假设我有一个应用程序需要实时跟踪某些事物的状态。通过我从外部流程获得的事件进行跟踪。我正在开发它,我需要快速修复一个类成员函数来处理与类结构无关的事件。

为此,我需要重新编译并重新启动,在此期间我的应用程序状态将丢失。我可以将状态保存在文件或其他内容中,但是:

事件是时间关键的,我不能失去甚至一毫秒,因为不处理事件是不可接受的。我想知道是否有办法解决这个问题。

编辑:

我正在使用类来跟踪数据,但是它们的生命周期永远不会超过一分钟,并且在此之后它们实际上从未存储过,并且它们将被删除。数据存储在类实例成员中,我不能忘记它们中的任何一个。

请注意,我也在多个线程中使用这些类。

1 个答案:

答案 0 :(得分:2)

您可能希望实施dynamic class reloading

但请注意,重新加载一个类并不会将原始类的实例神奇地转换为修改过的类的实例 - 相反,您将从中获取 new 类您可以创建新实例。如果您只是使用您的班级处理数据而不是存储数据,那么您应该没问题。