是否有任何 Java VM 可以将其状态保存到文件中,然后重新加载该状态?

2022-09-02 19:57:39

是否有任何 Java VM 可以将其状态保存到文件中,然后重新加载该状态?

如果是,是哪些?


答案 1

另一个选项(可能与您的情况相关,也可能不相关)是在虚拟机内运行 JVM(任何 JVM)。大多数虚拟机都提供存储和恢复状态的选项,因此您应该能够重新启动PC,在备份时启动VM,并让Java进程从原来的位置开始。

我在工作中使用VMWare播放器在IE上进行测试,当我关闭并稍后重新打开它时,这的工作原理如上所述。当应用在 VM 中执行任何值得注意的操作时,我通常不会这样做,但只要它们不访问任何外部资源(例如网络套接字),我就希望它像 VM 从未关闭过一样工作。


答案 2

延续可能是您要寻找的:

[...]第一类延续,这些构造使编程语言能够在任何时间点保存执行状态,并在程序的稍后点返回到该点。

Java至少有两个延续库:RIFE延续javaflow。我知道javaflow至少允许将状态序列化到磁盘:

如果 捕获的所有对象也是可序列化的,则可以序列化 A。换句话说,所有局部变量(包括所有对象)都需要标记为 。在此示例中,需要将 MyRunnable 类标记为 Serializable 。序列化的延续可以发送到另一台计算机或稍后使用。- Javaflow TutorialContinuationthisSerializable


推荐