扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
此方法对带有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.结果:
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流