Java:在应用程序中嵌入脚本引擎:JSR223(脚本引擎)仍然是一个好的解决方案吗?

Java:在应用程序中嵌入脚本引擎:JSR223(脚本引擎)仍然是一个好的解决方案吗?,java,scripting,scriptengine,Java,Scripting,Scriptengine,我想在Java应用程序中使用一种或多种脚本语言 从中我发现有三种方法: 使用Java6(使用JSR223:脚本) 嵌入Bean脚本框架(BSF) 直接调用$YOUR\u SCRIPTING\u引擎$api 由于我需要支持多个脚本引擎,我认为选项3不够好 在寻找解决方案1时。JSR223:脚本,我开始寻找包含所有脚本引擎集成的zip存档 Download and unzip the collection of jars from the documents and files section of

我想在Java应用程序中使用一种或多种脚本语言

从中我发现有三种方法:

  • 使用Java6(使用JSR223:脚本)
  • 嵌入Bean脚本框架(BSF)
  • 直接调用$YOUR\u SCRIPTING\u引擎$api
  • 由于我需要支持多个脚本引擎,我认为选项3不够好

    在寻找解决方案1时。JSR223:脚本,我开始寻找包含所有脚本引擎集成的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).
    
    但是这个文件在网上什么地方都没有(的dowload部分是空的。如果我愿意,我可以下载源代码并构建所需的引擎集成。源代码看起来很旧(我所看到的是2年以上)

    JSR223是否仍然有效,是否是一个好的选择方案?
    如果不是的话,Bean脚本框架是一个很好的替代方案吗?最后一个框架的文档页面非常糟糕,只支持少数脚本语言(但它支持我想要的大多数语言)…

    我已经在几个应用程序中嵌入了沙盒Rhino,并且发现直接使用Rhino代码更容易

    除非您想要嵌入多种不同的语言,或者想要部署在已经安装了JSR223 JAR的VM上,否则我认为您不会从额外的抽象层中获得太多好处


    我强烈建议,在选择嵌入的语言时,要考虑到沙盒的易用性。

    我使用BSF是为了一些小事情,也为了好玩——它很管用。