100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > java 脚本引擎性能_Java 脚本引擎

java 脚本引擎性能_Java 脚本引擎

时间:2021-11-26 02:47:30

相关推荐

java 脚本引擎性能_Java 脚本引擎

脚本引擎,就是一个编程语言的解释器,它的功能是解释执行用户的程序文本,将它译成计算机能执行的机器代码,完成一系列的功能。

Java脚本引擎简单地说就是指Java提供的一组兼容操作各种脚本语言的的API。

下面将我所了解得内容做以简单的记录,初来乍到,大神请轻喷,感谢!

首先来个demo感受下:通过 ScriptEngineManager 对象,通过getEngineByExtension("js")(通过扩展名,获取脚本对象);

public classEngine {public static void main(String[] args) throwsScriptException {

ScriptEngine engine= newScriptEngineManager().getEngineByExtension("js");if(engine==null){throw new RuntimeException("找到不JavaScript语言执行引擎");

}

engine.eval("var a; a = 10;print('这是JavaScript脚本引擎:'+a);");

}

}

// 直接执行脚本

engine.eval("print('我他么的热死了!')");

System.out.println("---// 脚本语言绑定-----");

// 脚本语言绑定

engine.put("name", "World");

engine.eval("var message = 'hello,'+name;");

engine.eval("print(message)");

Object obj = engine.get("message");

System.out.println(obj);

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

SimpleBindings bindings = new SimpleBindings();

bindings.put("hobby","写代码");

engine.eval("print('I like '+ hobby);",bindings);

//重定向

ScriptContext context = engine.getContext();

context.setWriter(new FileWriter("aaa.txt"));

engine.eval("print('ni hao ya wo s ni da ge dy ')");

//自定义属性

context.setAttribute("name", "王宝宝", ScriptContext.GLOBAL_SCOPE);

context.setAttribute("name", "xiao bao bao", ScriptContext.ENGINE_SCOPE);

System.out.println(context.getAttribute("name"));

Bindings binding = engine.createBindings();

binding.put("key","11111");

Bindings binding1 = engine.createBindings();

binding1.put("key","222");

context.setBindings(binding1, ScriptContext.GLOBAL_SCOPE);

engine.eval("print(key);");

注意:1.使用eval ()函数即可在Java代码中使用JavaScript 或其他脚本语言。

2.Oracle Nashorn 为jdk1.8引擎版本名称。

3.在jdk1.8环境下输出语句请使用:print();请勿使用println();否则报 javax.script.ScriptException异常!

//代码执行效果

Oracle Nashorn

我他么的热死了!

------脚本语言绑定-----

hello,World

hello,World

World

I like 写代码

xiao bao bao

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。