2011-03-11 50 views
2

我需要在我的Java應用程序中使用腳本語言。JSR-223和Groovy

我傾向於Groovy,因爲工具和語言似乎最適合這項工作。

我的困惑來自整個JSR-223適合所有這些的地方。創建引擎時,我應該關心使用特定的JSR-223界面嗎?

例如,我們需要遠程存儲我們的腳本,並且能夠觸發我們的應用程序按需重新加載它們。 GroovyScriptEngine似乎正是我們想要使用的。

但是,this頁面根據JSR-223規範討論瞭如何創建Groovy引擎。這個接口非常有限,並且缺少我們需要的功能,而無需構建額外的代碼。

JSR-223如何適應這一切?我應該關心使用JSR-223界面嗎?爲什麼?

回答

3

Groovy documentation on JSR 223

Groovy中有許多機制 與Java的集成,其中一些比可用 提供更豐富的選擇與JSR 223(例如更大 可配置性和更安全性 控制)。當您需要保持 語言的靈活選擇,並且您不需要 需要JSR-223支持的集成機制而不是 時,推薦使用JSR 223。

+1

Codehaus已經死了。我認爲內容已移至此處:http://www.groovy-lang.org/integrating.html#jsr223 – Jmini

2

你打算將其他語言插入到你的框架中嗎?

如果是這樣的話,我想你會需要的JSR-223的東西..

如果沒有,你只需要插上Groovy中,那麼我會避開這個去了更直接的途徑......

+0

Just Groovy。我們不需要多種腳本語言。 – Steve

+0

如果您使用特定於Groovy的方法,您將擁有更多集成選項。 –

0

如果您想知道爲什麼ScriptEngineManager未找到腳本引擎。原因是在Groovy的2.x版中,對JSR 223的支持被拋棄了。

如在this page上支持在版本1.6上添加的JSR 233。集成代碼位於org.codehaus.groovy.jsr223包中。

在版本2.x中,似乎該軟件包已被刪除。

+1

已將其重新定位到名爲groovy-jsr223的單獨程序包中:https://search.maven.org/#搜索| GA | 1 |一%3A%22groovy-JSR223%22 – Peter