我希望让我的项目支持自定义脚本代码,包括 Javascript 和 Python。为了轻松支持多种语言,我想使用 ScriptEngine 接口(由 JSR-223 规范定义)。这导致了问题:Java 6 和 7 使用 Mozilla Rhino javascript 引擎,而 Java 8 使用新的 Nashorn javascript 引擎。不幸的是,Rhino 和 Nashorn 之间有几个不兼容的地方。
该项目必须在 Java 7 和 8 上运行。由于无论使用哪种 JVM,我都希望脚本的行为相同,所以我认为最好将 Mozilla Rhino 与我的应用程序捆绑在一起,但我找不到 JSR- 223 (ScriptEngine) 包装器。
库存的 Mozilla Rhino 是否有这样的包装器?
我可以接受与 Java 7 兼容的 Nashorn 反向移植。
切换到 Apache BSF 而不是 JSR-223 会更好吗?