Java 返回无法调用 ScriptEngine 错误

问题描述 投票:0回答:2

我正在运行 Java 的 ScriptEngine 类来运行一些代码。当我运行它所说的代码时,我将 IntelliJ 与 Maven 依赖项一起使用

Cannot invoke "javax.script.ScriptEngine.eval(String)" because "this.engine" is null
    at Run.Evaluater.<init>(Evaluater.java:19)

该行的代码如下

engine.put("event", event);
engine.put("content", message);

这就是我启动 ScriptEngone 的方式

    public ScriptEngineManager man = new ScriptEngineManager();
    public ScriptEngine engine = man.getEngineByName("nashorn");
javascript java scriptengine
2个回答
1
投票

从码云克隆项目运行时遇到此错误。这部分内容是关于验证码的加载。我不明白原因,但这是版本问题。更改JDK版本从13减少到8时问题解决。


0
投票

从 Java JDK 15 开始,nashorn 引擎已被删除。然后尝试使用此引擎启动所描述的问题异常。

您可以将其添加为外部依赖项。例如,使用maven:

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

这解释了为什么返回 JDK 8 来解决问题,因为 JDK 8 嵌入了 nashorn 引擎。

© www.soinside.com 2019 - 2024. All rights reserved.