java - 通过标准 JDK 11 使用 graalvm

标签 java nashorn java-11 graalvm

我的项目使用了 Nashorn Javascript 引擎。我正在尝试迁移到 java11 并从 Nashorn 迁移到 Graal。我读过 here从 JDK 11 开始,我可以通过标准 JDK 安装使用 graal。我还在那里读到 Graal-SDK 已上传到 Maven Central,并且有 Java 标志 polyglot.js.nashorn-compat 便于迁移。所以我使用了 jdk11,将 Maven 依赖项添加到 pom.xml 并使用了 java 标志,但是当我尝试通过名称“graal.js”获取引擎时,我在这里得到了空值:

ScriptEngine engine = engineManager.getEngineByName("graal.js")

我错过了什么?如何让它发挥作用?

最佳答案

这是一个示例 Maven 项目,展示了如何通过脚本 API 和多语言 API 在 JDK11 上运行 GraalVM JavaScript 引擎。希望对您有所帮助!

https://github.com/graalvm/graal-js-jdk11-maven-demo

它的要点是添加必要的依赖项(graal-sdk、js、js-scriptengine,以及可选的分析器和 chromeinspector),使用启用的实验选项和 JVMCI 编译器运行(-XX:+UnlockExperimentalVMOptions - XX:+EnableJVMCI) 并使用 graal jar (--upgrade-module-path=${compiler.dir}/compiler.jar) 升级模块路径,也可以从maven (org.graalvm.compiler:compiler).

关于java - 通过标准 JDK 11 使用 graalvm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52932679/

相关文章:

java - java认证考试的重载方法

java - Java CRUD 中的接口(interface)隔离

java - javax 计时器上的 NullPointerException?

java - 在 Servlet 中重用 Nashorn ScriptEngine

java - java Nashorn 中的默认方法是在实际方法不存在时调用的吗?

javascript - 在java中重用javascript

java - JPA 通过查询连接表

java - 在 Java 6 中用于并发访问列表的最佳方法

java - 在 Jenkins 上升级到 JDK11 后 Maven 编译器错误(线程问题?)

elasticsearch - Elastic Search 6.x不断失败