ScriptEngineManager manager = new ScriptEngineManager();

        String[] engineNames = {"rhino", "js", "JavaScript"};
        for (String engineName : engineNames) {
            ScriptEngine engine = manager.getEngineByName(engineName);
            System.out.println("Engine name: " + engineName + ", Engine: " + engine);
        }

        // 列出所有可用的引擎
        StringBuilder availableEngines = new StringBuilder("可用的引擎: ");
        for (javax.script.ScriptEngineFactory factory : manager.getEngineFactories()) {
            availableEngines.append(factory.getEngineName())
                    .append(" (").append(String.join(", ", factory.getNames())).append("), ");
        }

        System.out.println("availableEngines" + availableEngines);

打印结果:

Warning: Nashorn engine is planned to be removed from a future JDK release
Engine name: js, Engine: jdk.nashorn.api.scripting.NashornScriptEngine@928763c
Warning: Nashorn engine is planned to be removed from a future JDK release
Engine name: JavaScript, Engine: jdk.nashorn.api.scripting.NashornScriptEngine@471a9022
availableEngines可用的引擎: Oracle Nashorn (nashorn, Nashorn, js, JS, JavaScript, javascript, ECMAScript, ecmascript), 

可以看到JDK11使用的是Nashorn引擎,但Nashorn引擎在JDK15以后被移出了。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐