如何在IntelliJ中配置scriptEngineManager.getEngineByName(“JavaScript”)以不返回空值?

xytpbqjk  于 2023-02-07  发布在  Java
关注(0)|答案(1)|浏览(134)

我调用getEngineByName(“JavaScript)返回空值。IntelliJ项目需要什么配置才能返回指定的脚本引擎?

ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
ScriptEngine scriptEngine = scriptEngineManager.getEngineByName("JavaScript");

我肯定忽略了什么。

du7egjpx

du7egjpx1#

您需要自己添加OpenJDK Nashorn脚本引擎。

如果使用Maven,则为pom.xml

附加

<dependencies>
    <dependency>
        <groupId>org.openjdk.nashorn</groupId>
        <artifactId>nashorn-core</artifactId>
        <version>15.4</version>
    </dependency>
</dependencies>

如果仅使用IntelliJ项目

后藤https://mvnrepository.com/artifact/org.openjdk.nashorn/nashorn-core/15.4
查找jar(2.1 MB)https://repo1.maven.org/maven2/org/openjdk/nashorn/nashorn-core/15.4/nashorn-core-15.4.jar),
下载此jar文件。
将jar文件添加到项目库文件中。

示例代码

package org.example;

import javax.script.*;
public class EvalScript {
    public static void main(String[] args) throws Exception {
        ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
        ScriptEngine scriptEngine = scriptEngineManager.getEngineByName("JavaScript");
        //ScriptEngine scriptEngine = scriptEngineManager.getEngineByName("nashorn");
        scriptEngine.eval("print('Hello, World')");
    }
}

相关问题