2011-07-17 134 views
1

如何在腳本內暫停Groovy腳本,直到Java程序告訴腳本再次運行?該腳本將嵌入到Java程序中。在運行時暫停Groovy腳本

+0

groovy部分是如何被調用的? ScripingEngine,進程,直接? java程序應該暫停它還是應該暫停並等待它收到信號? – marc

+0

暫停,直到收到信號。 –

+0

喲如何執行它? ScriptEngine,進程還是直接通過調用?在一個單獨的線程或行? – marc

回答

0

取決於您實際調用腳本的方式有幾種可能性。

如果您使用單獨的進程調用它,則可以等待腳本中的STDIN輸入並在Java中寫入STDOUT。

如果兩者只是在一個JVM的不同線程中運行(這包括通過ScriptingManager執行),則可以在腳本中使用obj.wait() int,在java程序中使用obj.notify[All]()

+0

謝謝!你知道我如何循環它,以便它一直等到程序結束?當有事情發生時,我有一個函數可以觸發。我應該添加什麼功能使線程再次喚醒? TL; DR 有沒有辦法檢查對象(Groovy腳本)是否尚未完成? –

+0

你使用什麼方法? STDIN還是wiat/notify? – marc

+0

我使用wait/notify。 –

0

我從來沒有碰到過這種需要在平常的過程 - 因爲通常嵌入腳本,你希望它給你打電話回它運行到完成

http://groovy.codehaus.org/api/groovy/util/GroovyScriptEngine.html

可以結合工作後運行? rem不交叉線程

+0

我將在腳本運行時更改綁定。每個腳本將代表一個NPC,並且我想等待玩家的互動。 –