Java Jython保存程序状态

Java Jython保存程序状态,java,python,jython,Java,Python,Jython,可以保存Jython程序的状态吗?我希望能够保存所有定义的变量和程序所在的当前行,重新启动整个程序,然后从那里继续。我研究了酸洗,但这只序列化了一个类,而不是整个状态。我想我需要的是Continuation,就像在无堆栈Python中一样。我能在Jython做吗 我的Python文件如下所示: def main() engine.blockingMethod() testVar = engine.blockingMethodReturn() if(testVar == "

可以保存Jython程序的状态吗?我希望能够保存所有定义的变量和程序所在的当前行,重新启动整个程序,然后从那里继续。我研究了
酸洗
,但这只序列化了一个类,而不是整个状态。我想我需要的是
Continuation
,就像在无堆栈Python中一样。我能在Jython做吗

我的Python文件如下所示:

def main()
    engine.blockingMethod()
    testVar = engine.blockingMethodReturn()
    if(testVar == "a"):
        methodA()
    else:
        methodB()
def methodA ()
    engine.blockingMethod()
def methodB()
    engine.blockingMethod()
pyScript.start();
System.out.println("Done")
我的程序需要能够在任何这些方法之后退出。由于
if
语句的缘故,我无法在加载文件时读取所有文件。我不知道该怎么做,因为当用户想要退出时,我的程序没有完全运行。我是这样运行的:

def main()
    engine.blockingMethod()
    testVar = engine.blockingMethodReturn()
    if(testVar == "a"):
        methodA()
    else:
        methodB()
def methodA ()
    engine.blockingMethod()
def methodB()
    engine.blockingMethod()
pyScript.start();
System.out.println("Done")

在一个单独的线程中,因为我从Python文件调用的大多数方法都是阻塞的。我可以保存以前的操作,并运行该文件,直到到达保存的历史记录的最后一个,但由于
if
语句,这将无法工作。因此,当播放器按下退出按钮时,我需要保存状态并终止线程。类似这样的内容:

您当然可以保存变量的值。这就是文件的全部目的


您无法轻松保存您所在的代码行。程序应该在一个已知的执行点退出,这样当您重新启动时,它就会自动知道如何继续。

可能有一个更简单的方法,但我最终制作了自己的Python解析器

我需要能够在任何时间点退出。我更新了我的question@L当main()结束时,程序退出。这是明确的定义,而不是“任何瞬间”。@Code Apprenrice这是一个游戏。比赛开始时,我打电话给梅因。当主要比赛结束时,比赛也结束了。但是玩家需要能够随时点击退出按钮,保存并继续later@L仍然存在的órántViktorGerber位于代码中明确定义的点:按钮的事件处理程序。在该方法中,将所有必要的状态存储在文件中。当程序稍后启动时,加载状态并相应地执行操作。您不需要保存程序结束的当前代码行,因为您已经知道这是哪一行:main()的结尾或者其他一些定义明确的退出点。@LóránViktorgerber注意到,我假设没有灾难性的失败,因为这样的退出意味着还有其他问题需要处理。线程当然会导致夏季困难。不过,我不明白你最近的编辑。如果您能在一个小的代码示例中重现这个问题,这将有所帮助。你不需要展示你的整个游戏。刚刚创建了一个新程序,它模拟了您询问的部件。@Code peedient我添加了一个链接,指向一个引擎的文档,它可以像我想做的那样进行保存it@Code-学徒我在打电话,但我会尝试把一些东西放在一起。我建议你为一个特定的游戏建立一个引擎。现在还不用担心它的通用性。这将帮助您获得一些编程经验,以便将来能够更轻松地构建通用游戏引擎。@Code学徒我在Java方面有经验,但在Jython和Python方面没有经验。以下是我制作的程序,它实现了我的引擎的功能: