首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过标准JDK 11使用graalvm

通过标准JDK 11使用graalvm
EN

Stack Overflow用户
提问于 2018-10-22 15:17:21
回答 2查看 4.8K关注 0票数 4

我有项目使用纳什霍恩Javascript引擎。我正在尝试迁移到java11,并从纳什霍恩迁移到Graal。我读过这里,我可以从JDK 11开始通过标准的JDK安装使用graal,我还在那里读到Graal被上传到Maven central,并且有polyglot.js.nashorn-compat标志来方便迁移。因此,我使用了jdk11,将maven依赖项添加到pom.xml中,并使用了java标志,但是当我试图获得名为"graal.js“的引擎时,这里的值为null:

代码语言:javascript
复制
ScriptEngine engine = engineManager.getEngineByName("graal.js")

我错过了什么?怎么让它起作用?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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)中获得。

票数 6
EN

Stack Overflow用户

发布于 2018-10-22 18:38:21

您缺少以下依赖项:

代码语言:javascript
复制
<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消息:

代码语言:javascript
复制
GraalJSEngineFactory gsf = new GraalJSEngineFactory();

然而,似乎有另一个包缺失,因为它不适用于我。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52932679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档