java脚本引擎,【Java基础】脚本引擎

源代码:https://gitee.com/AgentXiao/reflection

脚本引擎要点:

1、什么是脚本引擎

2、获得脚本引擎对象

3、执行脚本语句

4、执行js文件

一、脚本引擎

JAVA脚本引擎是从JDK6.0之后添加的新功能。

脚本引擎介绍:

使得 Java 应用程序可以通过一套固定的接口与各种脚本引擎交互,从而达到在 Java 平台上调用各种脚本语言的目的。

Java 脚本 API 是连通 Java 平台和脚本语言的桥梁。

可以把一些复杂异变的业务逻辑交给脚本语言处理,这又大大提高了开发效率。

二、实现

/**

* @ClassName Demo01

* @Description 测试脚本引擎执行js代码

* @Author xwd

* @Date 2018/10/22 11:12

*/

public class Demo01 {

public static void main(String[] args) throws ScriptException, NoSuchMethodException, FileNotFoundException {

//获得脚本引擎对象

ScriptEngineManager sem = new ScriptEngineManager();

ScriptEngine engine = sem.getEngineByName("javascript");

//定义变量,存储到引擎上下文

engine.put("msg","xwd is a good man");

String str = "var user = {name:'xwd',age:18,schools:['清华大学','华南农业大学']};";

str += "print(user.name);";

//执行脚本

engine.eval(str);

engine.eval("msg='lsm is beautiful!'");

System.out.println(engine.get("msg"));

//定义js函数

engine.eval("function add(a,b){var sum = a + b;return sum;}");

//取得调用接口

Invocable invocable = (Invocable) engine;

//执行js函数

Object o = invocable.invokeFunction("add", new Object[]{13, 22});

System.out.println(o);

//导入其他的java包,使用其他包中的java类

// String code = "importPackage(java.util);var list=Arrays.asList([\"xwd\",\"lsm\",\"bxd\"]);";

// engine.eval(code);

//

// List list = (List)engine.get("list");

// for(String l:list){

// System.out.println(l);

// }

//执行一个js文件

URL resource = Demo01.class.getClassLoader().getResource("pri/xiaowd/engine/test.js");

engine.eval(new FileReader(resource.getPath()));

}

}

76100a6e4884

控制台输出

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值