Tengo proyectos utilizado motor de Nashorn Javascript. Estoy tratando de migrar a java11 y también migrar de Nashorn a Graal. He leído aquí que puedo usar Graal a través de la instalación de JDK estándar a partir de JDK 11. También he leído que hay que Graal-SDK se suben a Maven central, y que hay un pabellón de Java polyglot.js.nashorn-compat
para la migración fácil. Así que he jdk11 se usa, añadir la dependencia Maven para pom.xml y la bandera java, pero cuando estoy tratando de conseguir el motor por nombre "graal.js", Tengo nula aquí:
ScriptEngine engine = engineManager.getEngineByName("graal.js")
Lo que me falta? ¿Cómo hacer que funcione?
Aquí es un proyecto Maven de ejemplo que muestra cómo ejecutar el motor de JavaScript en GraalVM JDK11 tanto a través de la API de secuencias de comandos y la API políglota. ¡Espero eso ayude!
https://github.com/graalvm/graal-js-jdk11-maven-demo
El quid de la cuestión es agregar las dependencias necesarias (Graal-SDK, js, js-ScriptEngine y chromeinspector opcionalmente perfilador y), correr con opciones experimentales habilitados y el compilador JVMCI ( -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI
) y actualizar la ruta del módulo con el frasco Graal ( --upgrade-module-path=${compiler.dir}/compiler.jar
) que también está disponible de experto ( org.graalvm.compiler:compiler
).