我正在用 java (SE) + 一些开源库开发一个服务器应用程序。这是一个游戏,所以我认为它有时必须更新。只要应用程序正在跟踪客户端的状态,使用它,并且还支持客户端会话(以专用线程的形式)和存储对这些播放器实例的引用的单例,我想重新加载 JVM 进程(例如安装新版本的 jar 文件),这样一些类和实例不会被 GC 擦除,而是挂接到启动的新进程中。
可能情况:
我有一个游戏版本 1.0 在服务器上运行。我需要在 1.2 中添加一些新功能。但是100名玩家正在互相战斗。我需要安装1.2版,玩家可能会觉得有些卡顿,但是即使jar的版本发生了变化,他们也应该可以继续战斗。
怎么可能呢?