Java:在应用程序中嵌入脚本引擎:JSR 223 (ScriptEngine) 仍然是一个好的解决方案吗?
Posted
技术标签:
【中文标题】Java:在应用程序中嵌入脚本引擎:JSR 223 (ScriptEngine) 仍然是一个好的解决方案吗?【英文标题】:Java: embedding script engines in an application: Is the JSR 223 (ScriptEngine) still a good solution? 【发布时间】:2011-03-18 23:48:26 【问题描述】:我想在我的 Java 应用程序中使用一种或多种脚本语言。
从JRuby website我发现有3种方式:
-
使用 Java 6(使用 JSR 223:脚本)
嵌入 Bean 脚本框架 (BSF)
直接调用 $YOUR_SCRIPTING_ENGINE$ API
由于我需要支持多个脚本引擎,我认为选项 3 不够好。
在寻找解决方案 1.JSR 223: Scripting 时,我开始寻找包含所有脚本引擎集成的 zip 存档
Download and unzip the collection of jars from the documents and files section of the site (jsr223-engines.tar.gz or jsr223-engines.zip).
但是这个文件在网上无处可寻(project home 的下载部分是空的。如果我愿意,我可以下载源代码并构建我需要的引擎集成。源代码看起来很旧(我看到的 2 年以上)
JSR 223 是否仍然存在并且是一个可供选择的好解决方案? 如果不是,那么 Bean Scripting Framework 是一个不错的选择吗?最后一个文档页面很差,只支持少数脚本语言(但它支持我想要的大部分语言)......
【问题讨论】:
我将 BSF 用于小事和娱乐 - 它很有效。 【参考方案1】:我在几个应用程序中嵌入了沙盒 Rhino,发现直接使用 Rhino 代码更容易。
除非您想要嵌入多种不同的语言或想要部署在已经有 JSR 223 jar 的 VM 上,否则我认为您不会从额外的抽象层中受益匪浅。
我强烈建议您在选择要嵌入的语言时考虑沙盒的便利性。
【讨论】:
以上是关于Java:在应用程序中嵌入脚本引擎:JSR 223 (ScriptEngine) 仍然是一个好的解决方案吗?的主要内容,如果未能解决你的问题,请参考以下文章
Beanshell vs JSR223 vs Java JMeter脚本:性能关闭你一直在等待!
Beanshell vs JSR223 vs Java JMeter脚本:性能关闭你一直在等待!
Jmeter之测试元件-JSR223 PreProcessor