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) 仍然是一个好的解决方案吗?的主要内容,如果未能解决你的问题,请参考以下文章

怎么使用java运行python脚本?

Beanshell vs JSR223 vs Java JMeter脚本:性能关闭你一直在等待!

Beanshell vs JSR223 vs Java JMeter脚本:性能关闭你一直在等待!

Jmeter之测试元件-JSR223 PreProcessor

jemeter 之后置处理器 JSR223 PostProcessor

jmeter(二十六)前置处理器-JSR223 PostProcessor(随机生成手机号)