我在我的Java应用程序中使用Jython作为脚本引擎。 我可以通过调用pi.execfile(script_name)从我的Java应用程序运行任何Jython脚本。但问题是我还需要一种方法来从Java代码手动停止脚本执行。如何在不修改Jython脚本的情况下停止它?
我在一个单独的线程中运行一个脚本,所以试图通过它来中断它 scriptRunningThread.interrupt();并捕获InterrupredException,但线程只是挂起并挂起...新创建的线程也将挂起
另一种方法 - 共享一个公共对象并使Jython脚本检查用户是否想要退出。
第三种方法是运行一个单独的进程(我的应用程序的控制台模式)并在按下STOP按钮时将其终止。但我不喜欢这个解决方案...
有什么建议吗?
答案 0 :(得分:0)
最好的方法是你的第二个想法:让Jython脚本检查终止标志,如果设置了标志就干净地退出。
如果你想从另一个线程终止线程,你可以调用Thread.stop(),但这通常是一个坏主意,因为它可能导致你的整个应用程序挂起或在某些情况下行为异常。