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

本文讲述了在Windows10环境下,如何从过时的Nashorn引擎切换到GraalVM,包括下载、安装GraalVM及其JS组件,配置IDEA并运行示例代码的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

在参与开发的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/)。

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

    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
    Processing Component archive: .\icu4j-installable-ce-java20-windows-amd64-23.0.1.jar
    Installing new component: ICU4J (org.graalvm.icu4j, version 23.0.1)
    
    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
    Processing Component archive: .\regex-installable-ce-java20-windows-amd64-23.0.1.jar
    Installing new component: TRegex (org.graalvm.regex, version 23.0.1)
    
    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
    Processing Component archive: .\js-installable-svm-java20-windows-amd64-23.0.1.jar
    Installing new component: Graal.js (org.graalvm.js, version 23.0.1)
    
    PS C:\Program Files\Java\graalvm-jdk-20.0.2+9.1> .\bin\gu.cmd list
    ComponentId              Version             Component name                Stability                     Origin
    ---------------------------------------------------------------------------------------------------------------------------------
    graalvm                  23.0.1              GraalVM Core                  Supported
    icu4j                    23.0.1              ICU4J                         Supported
    js                       23.0.1              Graal.js                      Supported
    native-image             23.0.1              Native Image                  Early adopter
    regex                    23.0.1              TRegex                        Supported

运行示例代码

配置IDEA

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

  • 运行示例代码

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

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值