当前位置:   article > 正文

GraalVM+Win10环境配置与执行JS代码_context graalvm js

context graalvm js

背景

在参与开发的Java工程中,有使用Nashorn引擎执行外部JS代码的业务。Nashorn引擎已经过时了,Oracle新退出的GraalVM具备在Java工程中执行JS代码的能力,所以打算在本地搭建GraalVM环境并运行相关示例代码。

准备工作

  • Windows 10操作系统

具体步骤

下载并安装GraalVM

下载并安装JS等相关组件

在最新版本的GraalVM中,默认不配套JS组件。如果要实现Java工程中执行JS代码,需要自行下载JS组件。

根据官方文档(https://www.graalvm.org/latest/reference-manual/js/),可以使用GraalVM的命令行工具gu来安装。但实操发现这种方式由于网络原因无法成功安装。所以需要通过手工安装的方式来完成JS等组件的安装。手工安装包名称形如xxx-installable-xxx.jar

  • 下载JS组件(https://github.com/oracle/graaljs/releases)。

     

  • 下载相关依赖。安装JS组件依赖ICU4J和TRegex两个组件,可以在github的社区版GraalVM发布仓库中找到(https://github.com/graalvm/graalvm-ce-builds/releases/)。

  • 安装上述所有组件,并查看安装结果。若能成功看到安装的组件,证明安装成功。

    1. PS C:\Program Files\Java\graalvm-jdk-20.0.2+9.1> .\bin\gu.cmd install -L .\icu4j-installable-ce-java20-windows-amd64-23.0.1.jar
    2. Processing Component archive: .\icu4j-installable-ce-java20-windows-amd64-23.0.1.jar
    3. Installing new component: ICU4J (org.graalvm.icu4j, version 23.0.1)
    4. PS C:\Program Files\Java\graalvm-jdk-20.0.2+9.1> .\bin\gu.cmd install -L .\regex-installable-ce-java20-windows-amd64-23.0.1.jar
    5. Processing Component archive: .\regex-installable-ce-java20-windows-amd64-23.0.1.jar
    6. Installing new component: TRegex (org.graalvm.regex, version 23.0.1)
    7. PS C:\Program Files\Java\graalvm-jdk-20.0.2+9.1> .\bin\gu.cmd install -L .\js-installable-svm-java20-windows-amd64-23.0.1.jar
    8. Processing Component archive: .\js-installable-svm-java20-windows-amd64-23.0.1.jar
    9. Installing new component: Graal.js (org.graalvm.js, version 23.0.1)
    10. PS C:\Program Files\Java\graalvm-jdk-20.0.2+9.1> .\bin\gu.cmd list
    11. ComponentId Version Component name Stability Origin
    12. ---------------------------------------------------------------------------------------------------------------------------------
    13. graalvm 23.0.1 GraalVM Core Supported
    14. icu4j 23.0.1 ICU4J Supported
    15. js 23.0.1 Graal.js Supported
    16. native-image 23.0.1 Native Image Early adopter
    17. regex 23.0.1 TRegex Supported

运行示例代码

配置IDEA

  • 配置项目使用的JDK为GraalVM对应的JDK,并选择对应的Java版本

  • 运行示例代码

  1. @Test
  2. public void testConsoleOutput() {
  3. try (Engine engine = Engine.newBuilder().build()) {
  4. try (Context ctx = Context.newBuilder("js").engine(engine).build()) {
  5. ctx.eval("js", "for(let i = 0; i < 10; i++) {console.log(i);}");
  6. }
  7. }
  8. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/119561
推荐阅读
相关标签
  

闽ICP备14008679号