java中调用javascript

Posted by 梁远鹏 on 2023-09-05 | 阅读 |,阅读约 1 分钟

TOC

说明

    @Test
    public void testInvoke() throws ScriptException, NoSuchMethodException {
        ScriptEngine engine = getEngine();
        String jsResult = "hello ";
        String param = "world";
        String jsFunc = "function hello(param){return '"+jsResult+"' + '"+param+"' };";
        engine.eval(jsFunc);
        Invocable in =  (Invocable)engine;
        String result = (String) in.invokeFunction("hello",param);
        Assertions.assertEquals(jsResult+param,result);
    }


    public ScriptEngine getEngine(){
        ScriptEngine engine = new ScriptEngineManager().getEngineByName("graal.js");
        Assertions.assertNotNull(engine);
        return engine;
    }

对应的关键依赖是:

      <properties>
              <graalvm-js.version>23.0.1</graalvm-js.version>
      </properties>

        <dependency>
            <groupId>org.graalvm.js</groupId>
            <artifactId>js</artifactId>
            <version>${graalvm-js.version}</version>
        </dependency>
        <dependency>
            <groupId>org.graalvm.js</groupId>
            <artifactId>js-scriptengine</artifactId>
            <version>${graalvm-js.version}</version>
        </dependency>

上述是一个在 java 中调用 javascript 的简单示例,其中 javascript 的 function 接受一个参数并且将参数与另一个字符串拼接,然后作为结果返回.

微信公众号

扫描下面的二维码关注我们的微信公众号,第一时间查看最新内容。同时也可以关注我的Github,看看我都在了解什么技术,在页面底部可以找到我的Github。

wechat-qrcode