java JDK包含哪些脚本语言解释器?
不久前,我阅读了关于JavaTM Scripting API的文章,但我找不到关于Oracle JVM实现了哪些语言解释器(JS除外)的信息。在哪里可以找到完整的列表?或者JVM在默认情况下只解释JavaScript吗
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript"); // what else?
# 1 楼答案
我猜你知道我将要说的大部分内容,但为了避免其他人无意中发现这一点:
默认情况下包含Javascript,因为它是参考实现(Rhino)。认为它是“嵌入的”是不正确的——实现恰好被捆绑为JSR-223的引用实现。据我所知,它与任何其他实现都没有区别,只是它碰巧是默认存在的
然而,许多其他语言都有实现,它们不是特定于JVM/JDK的(只需要Java 6或更高版本),并且在应用程序中添加起来相当简单
我使用过Perl、Groovy、Haskell、Javascript和Python以及其他一些工具(进行了一些性能测试,可能与使用它作为解决方案有关)
如果要安装,有很多可用语言: https://confluence.deri.ie:8443/display/romulus/JSR+223+compliant+scripting+languages
# 2 楼答案
我在@Jesper的帮助下找到了答案} ,它返回
javax.script.ScriptEngineManager
有方法^{我编写此代码片段是为了获得受支持引擎的列表:
输出:
Rhino是完全用Java编写的JavaScript的开源实现
结论:
Oracle JDK只有一个嵌入式脚本语言解释器——JS解释器