可能重复: 有哪些Java虚拟机可以将其状态保存到文件中,然后重新加载该状态? 有没有一种方法可以停止JVM,在硬盘上保存它的状态,然后从停止的地方恢复执行?类似于Windows、Linux等的休眠功能?
当程序在Unix上运行时,您可以通过按下命令行上的“^Z”或发送SIGSTOP信号来将其暂停。但这并不能完全满足您的需求。它并没有直接写入磁盘(尽管可能被交换出)。它无法在系统重启后恢复。与图像文件不同,您无法复制或还原它。一些基于图像的系统(如Smalltalk、Emacs等)也有各种黑客技巧可以让它们“unexec()”,并将自己保存到磁盘上。这将断开任何网络连接或打开的文件。大多数方法还需要程序的合作,特别是优雅地处理与外界的连接被切断。最后,您可以在虚拟机中运行JVM,并暂停虚拟机。至少,在虚拟机内部的文件连接将被保存。