我有项目使用纳什霍恩Javascript引擎。我正在尝试迁移到java11,并从纳什霍恩迁移到Graal。我读过这里,我可以从JDK 11开始通过标准的JDK安装使用graal,我还在那里读到Graal被上传到Maven central,并且有polyglot.js.nashorn-compat标志来方便迁移。因此,我使用了jdk11,将maven依赖项添加到pom.xml中,并使用了java标志,但是当我试图获得名为"graal.js“的引擎时,这里的值为null:
ScriptEngine engine = engineManager.getEngineByName("graal.js")我错过了什么?怎么让它起作用?
发布于 2018-11-07 08:10:00
下面是一个示例maven项目,它展示了如何通过脚本API和polyglot API在GraalVM JavaScript引擎上运行JDK11。希望能帮上忙!
https://github.com/graalvm/graal-js-jdk11-maven-demo
它的要点是添加必要的依赖项( graal、js、JVMCI以及可选的分析器和module检查器),使用启用的实验选项和JVMCI编译器(-XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI)运行,并使用graal (--upgrade-module-path=${compiler.dir}/compiler.jar)升级模块路径,这也可以从maven (org.graalvm.compiler:compiler)中获得。
发布于 2018-10-22 18:38:21
您缺少以下依赖项:
<dependency>
<groupId>org.graalvm.js</groupId>
<artifactId>js-scriptengine</artifactId>
</dependency>
<dependency>
<groupId>org.graalvm.truffle</groupId>
<artifactId>truffle-api</artifactId>
</dependency>js-scriptengine包含ScriptEngine实现:com.oracle.truffle.js.scriptengine.GraalJSScriptEngine。
而且还需要松露-api(只有当您直接实例化GraalJSEngineFactory时才会得到rror消息:
GraalJSEngineFactory gsf = new GraalJSEngineFactory();然而,似乎有另一个包缺失,因为它不适用于我。
https://stackoverflow.com/questions/52932679
复制相似问题