java调用js api_java调用javascript

介绍

jdk1.6提供了对JavaScript的支持,使用的js引擎为Rhino,jdk1.8替换成了Nashorn。

使用

public class Client {

public static void main(String[] args) throws IOException,

ScriptException, NoSuchMethodException {

//获取javascript引擎

ScriptEngineManager engineManager = new ScriptEngineManager();

ScriptEngine scriptEngine = engineManager.getEngineByName("javascript");

System.out.println(scriptEngine);

invokeJsWithString(scriptEngine);

}

private static void invokeJsWithString(ScriptEngine scriptEngine)

throws ScriptException, NoSuchMethodException {

String code = "12 + 34";

//执行javascript语句

Object result = scriptEngine.eval(code);

System.out.println(result);

//绑定变量

Bindings bindings = scriptEngine.createBindings();

bindings.put("name", "lisi");

scriptEngine.setBindings(bindings, ScriptContext.ENGINE_SCOPE);

//name为外部变量

code = "function print(num1,num2) { return num1 + num2 + name; }";

scriptEngine.eval(code);

//执行javascript函数

result = ((Invocable) scriptEngine).invokeFunction("print", 4, 5);

System.out.println(result);

}

}

输出结果为

jdk.nashorn.api.scripting.NashornScriptEngine@61f8bee4

46

9lisi

spring对java中的API进行了一些简单的封装

public class Client {

public static void main(String[] args) {

StandardScriptEvaluator evaluator = new StandardScriptEvaluator();

evaluator.setLanguage("javascript");

Object result = evaluator.evaluate(new StaticScriptSource("12 + 34"));

System.out.println(result);

}

}

46

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值