Java ScriptEngine 支持的语言

2022-09-01 20:15:37

Java有一个ScriptEngine系统,允许您用不同的语言运行/评估语句。
我知道JavaScript是受支持的,但我找不到任何其他语言来使用它。
例如,Ruby是否实现了?


答案 1

下面是一个脚本,用于确定系统上的所有语言:

import java.util.List;
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import javax.script.Bindings;
import javax.script.ScriptContext;
import javax.script.ScriptEngineFactory;


public class Test {

public static void main(String[] args)
{
    ScriptEngineManager mgr = new ScriptEngineManager();
    List<ScriptEngineFactory> factories = mgr.getEngineFactories();
    for (ScriptEngineFactory factory : factories)
    {
        System.out.println("ScriptEngineFactory Info");
        String engName = factory.getEngineName();
        String engVersion = factory.getEngineVersion();
        String langName = factory.getLanguageName();
        String langVersion = factory.getLanguageVersion();
        System.out.printf("\tScript Engine: %s (%s)\n", engName, engVersion);
        List<String> engNames = factory.getNames();
        for (String name : engNames)
        {
            System.out.printf("\tEngine Alias: %s\n", name);
        }
        System.out.printf("\tLanguage: %s (%s)\n", langName, langVersion);
        }
    }

}

希望这有帮助。


答案 2

..我知道一个事实,JavaScript是受支持的,..

从技术上讲,ECMAscript

..但我找不到任何其他语言来使用它。例如,Ruby是否实现了?

不。ECMAscript引擎是默认情况下唯一包含的引擎,这是我最后一次听到。

更新

Pointy在下面的评论表明,Nashorn引擎已被弃用,并将“很快”被删除。


推荐