相关疑难解决方法(0)

如何在 Java 15 及更高版本中使用 Nashorn?

我有一个现有的非模块化 Spring Boot 应用程序,它使用 Nashorn。该应用程序在 Java 14 上运行良好。

添加可用于 Java 15 的新 Nashorn 的 Maven 坐标后,应用程序在启动脚本引擎时失败。

public static void main(String[] args) throws ScriptException {
    ScriptEngineManager factory = new ScriptEngineManager();
    ScriptEngine engine = factory.getEngineByName("nashorn"); 
    engine.eval("print('Hello, World!');");
} 
Run Code Online (Sandbox Code Playgroud)

错误信息:

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "javax.script.ScriptEngine.eval(String)" because "engine" is null
    at xxxxx.yyyy.service.JavaScriptServiceImpl.main(JavaScriptServiceImpl.java:52)
Run Code Online (Sandbox Code Playgroud)

是否需要将整个项目模块化才能使用 Nashorn?

java nashorn java-15

15
推荐指数
3
解决办法
4128
查看次数

标签 统计

java ×1

java-15 ×1

nashorn ×1