2017-10-10 96 views
2

我在我的Java應用程序中使用Jython作爲腳本引擎。 我可以通過調用pi.execfile(script_name)從我的Java應用程序運行任何Jython腳本。但問題是我還需要一種方法來從Java代碼手動停止腳本執行。如何在不修改Jython腳本的情況下阻止它?Jython,從Java代碼裏面停止執行腳本

我在一個單獨的線程中運行一個腳本,所以試圖通過 scriptRunningThread.interrupt();並捕獲InterrupredException,但線程只是暫停和掛起...新創建的線程將被掛起

另一種方式 - 共享一個通用對象,並讓Jython腳本檢查用戶是否想退出。

第三種方式是運行一個單獨的進程(我的應用程序的控制檯模式),並在按下STOP按鈕時將其終止。但我不喜歡這個解決方案...

有什麼建議嗎?

回答

0

最好的方法是你的第二個想法:讓Jython腳本檢查終止標誌,並且如果標誌被設置,則乾淨地退出。

如果你想從另一個線程中終止線程,你可以調用Thread.stop(),但這通常是一個壞主意,因爲它可能會導致整個應用程序掛起或在某些情況下行爲不當。

+0

問題是我不想強制用戶添加該檢查語句 – Bob