Java JDK包含哪些脚本语言解释器?
不久前,我读到了有关Oracle JVM实现的语言解释器(JS除外)的信息,但我找不到相关信息。在哪里可以找到完整的列表?或者JVM在默认情况下只解释JavaScript吗Java JDK包含哪些脚本语言解释器?,java,jvm,Java,Jvm,不久前,我读到了有关Oracle JVM实现的语言解释器(JS除外)的信息,但我找不到相关信息。在哪里可以找到完整的列表?或者JVM在默认情况下只解释JavaScript吗 ScriptEngineManager factory = new ScriptEngineManager(); ScriptEngine engine = factory.getEngineByName("JavaScript"); // what else? 我在@Jesper的帮助下找到了答案javax.script
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript"); // what else?
我在@Jesper的帮助下找到了答案
javax.script.ScriptEngineManager有一个返回
…一个列表,其元素是发现机制找到的所有ScriptEngineFactory类的实例
我编写此代码片段是为了获得受支持引擎的列表:
ScriptEngineManager factory = new ScriptEngineManager();
for (ScriptEngineFactory sef : factory.getEngineFactories()) {
System.out.println(sef.getEngineName() + " (" + sef.getLanguageName() + ")");
}
输出:
Mozilla Rhino(ECMAScript)
是完全用Java编写的JavaScript的开源实现
结论:
Oracle JDK只有一个嵌入式脚本语言解释器—JS解释器。我想你知道我将要说的大部分内容,但为了避免其他人无意中发现这一点,他们没有:
默认情况下包含Javascript,因为它是参考实现(Rhino)。认为它是“嵌入的”是不正确的——实现恰好被捆绑为JSR-223的引用实现。据我所知,它与任何其他实现都没有什么不同,只是它碰巧是默认存在的
然而,许多其他语言都有实现,它们不是特定于JVM/JDK的(只需要Java6或更高版本),在应用程序中添加这些实现非常简单
我使用过Perl、Groovy、Haskell、Javascript和Python以及其他一些工具(进行了一些性能测试,可能将其用作解决方案)
如果要安装,有很多可用语言:
javax.script.ScriptEngineManager
提供了查找可用脚本引擎的方法。在API文档中查找它。非常感谢您的回答,尤其是链接+1.