我的Java应用程序需要脚本语言。
我倾向于使用Groovy,因为工具和语言似乎最适合这项工作。
我的困惑来自于整个JSR-223适用于所有这些。在创建引擎时我应该关心使用特定的JSR-223接口吗?
例如,我们需要远程存储我们的脚本,并能够触发我们的应用程序按需重新加载它们。 GroovyScriptEngine似乎正是我们想要使用的。
但是,this页面讨论了根据JSR-223规范创建Groovy引擎的问题。这个界面更加有限,缺乏我们需要的功能,无需构建额外的代码。
JSR-223如何适应这一切?我应该关心使用JSR-223接口吗?为什么呢?
答案 0 :(得分:3)
来自Groovy documentation on JSR 223:
Groovy有很多机制 与Java集成,其中一些 提供商比可用的更丰富的选择 与JSR 223(例如更大 可配置性和更高的安全性 控制)。建议使用JSR 223 你需要保持选择 语言使用灵活,你没有 不要求整合机制 由JSR-223支持。
答案 1 :(得分:2)
你打算将其他语言插入你的框架吗?
如果是这样,那么我猜你将需要JSR-223的东西..
如果没有,而且你只想插入Groovy,那么我会向后迈出这一步,走更直接的路线......
答案 2 :(得分:0)
如果您想知道为什么ScriptEngineManager找不到脚本引擎。原因是对JSR 223的支持在Groovy的2.x版本中有所下降。
正如this page对版本1.6中添加的对JSR 233的支持所记录的那样。集成的代码位于包org.codehaus.groovy.jsr223中。
在版本2.x中,似乎已删除此包。