java读取js方法返回值

java如何读取js里面的方法呢?以下是java读取普通js方法实例

此方法对带有document、windows的js会报错,目前还没研究出来怎么弄,有知道的大哥大姐能评论告诉一下我么!!

1.创建读取类

public class ScriptJs {

  public String userjs(String filename) throws ScriptException, NoSuchMethodException, IOException {
    ScriptEngineManager manager = new ScriptEngineManager();
    ScriptEngine engine = manager.getEngineByName("javascript");

    FileReader reader = new FileReader(filename); // 执行指定脚本
    engine.eval(reader);
    String ret ="";
    if (engine instanceof Invocable) {
      Invocable invoke = (Invocable) engine;
      ret = (String) invoke.invokeFunction("encrypt","ABCD");  //方法名和参数
      
      //System.out.println("s = " + s);
    }
    reader.close();
    return ret;
  }
}

2.js里面的代码

function encrypt(a){
    return a+"EFG";
}

3.测试以下

public class Test {
    public static void main(String[] args) throws ScriptException, IOException, NoSuchMethodException {
        ScriptJs js = new ScriptJs();
        String s = js.userjs("D:\\ideaProjects\\ThirdInterfaceTest\\src\\main\\java\\com\\example\\httpURLConnection\\sign.js");
        //String s = js.userjs("src/main/java/com/example/httpURLConnection/sign.js");  两种都可以
        System.out.println("s = " + s);
    }
}

4.结果:

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值