java使用js引擎例子
来源:互联网 发布:windows系统的平板软件 编辑:程序博客网 时间:2024/04/27 19:59
import java.io.FileInputStream;import java.io.InputStreamReader;import java.util.List;import javax.script.Bindings;import javax.script.Invocable;import javax.script.ScriptContext;import javax.script.ScriptEngine;import javax.script.ScriptEngineFactory;import javax.script.ScriptEngineManager;import javax.script.ScriptException;/** * java使用js引擎例子 * * @author yunshouhu * */public class RunScriptDemo {public static void main(String[] args) throws Exception {testList();testfile();// test在脚本中调用Java对象和方法();testjs();test向js脚本引擎传递变量();test脚本预编译();}private static void test脚本预编译() throws Exception {ScriptEngineManager manager = new ScriptEngineManager();ScriptEngine engine = manager.getEngineByName("js");engine.eval("function add (a, b) {c = a + b; return c; }");Invocable jsInvoke = (Invocable) engine;Object result1 = jsInvoke.invokeFunction("add", new Object[] { 10, 5 });System.out.println("result1="+result1);Adder adder = jsInvoke.getInterface(Adder.class);int result2 = adder.add(10, 5);System.out.println("result2="+result2);}private static void test向js脚本引擎传递变量() {ScriptEngineManager manager = new ScriptEngineManager();ScriptEngine engine = manager.getEngineByName("js");engine.put("a", 1);engine.put("b", 5);Bindings bindings = engine.getBindings(ScriptContext.ENGINE_SCOPE);Object a = bindings.get("a");Object b = bindings.get("b");System.out.println("a = " + a);System.out.println("b = " + b);Object result;try {result = engine.eval("c = a + b;");System.out.println("a + b = " + result);} catch (ScriptException e) {e.printStackTrace();}}private static void testjs() {ScriptEngineManager manager = new ScriptEngineManager();ScriptEngine engine = manager.getEngineByName("javascript");String script = "print ('www.oschina.net')";try {engine.eval(script);// var pi_value=Math.PI;// var sqrt_value=Math.sqrt(15);// engine.eval("print Math.PI ");} catch (ScriptException e) {e.printStackTrace();}}private static void test在脚本中调用Java对象和方法() {ScriptEngineManager manager = new ScriptEngineManager();ScriptEngine jsEngine;jsEngine = manager.getEngineByExtension("js");try {jsEngine.eval("importPackage(javax.swing);"+ "var optionPane =JOptionPane.showMessageDialog(null, 'Hello!');");} catch (ScriptException e) {e.printStackTrace();}}private static void testfile() {ScriptEngineManager manager = new ScriptEngineManager();ScriptEngine engine = manager.getEngineByName("js");try {// 乱码// FileReader reader = new FileReader("src/my.js");InputStreamReader reader = new InputStreamReader(new FileInputStream("src/my.js"), "UTF-8");System.out.println(reader.getEncoding());engine.eval(reader);reader.close();} catch (Exception e) {e.printStackTrace();}}private static void testList() {ScriptEngineManager manager = new ScriptEngineManager();List<ScriptEngineFactory> factoryList = manager.getEngineFactories();System.out.println(factoryList.size());for (ScriptEngineFactory factory : factoryList) {System.out.println(factory.getEngineName() + "="+ factory.getLanguageName());}}}
0 0
- java使用js引擎例子
- java使用js引擎例子
- JAVA使用脚本引擎执行JS
- js引擎的使用
- java js引擎学习
- js 使用对象 例子
- highlight.js使用例子
- vue.js使用例子
- Node.js 使用例子
- 使用DWR实现JS调用JAVA类的简单例子
- 规则引擎的使用---积分例子
- Cocos2d-JS使用CocosDenshion引擎
- 使用js模板引擎心得
- JS模板引擎-腾讯artTemplate 简洁语法例子
- JS模板引擎-腾讯artTemplate 简洁语法例子
- JS模板引擎-腾讯artTemplate 简洁语法例子
- 在java程序中使用jQuery抓取网页的新方法(java调用js解析引擎)
- js使用cookies的例子
- java对redis的基本操作
- vista和win7上安装Install Visual C++ 6.0
- Copy List with Random Pointer(leetcode)
- git四种主要的协议
- div 缓慢消失
- java使用js引擎例子
- 一、Bitmap的recycle问题
- Android中ksoap2-android调用WebService 实现天气预报
- 关于android自定义标题栏出现的问题总结
- vista和win7上安装Install Visual C++ 6.0
- 京东代码库JDCode的SSH配置过程
- 注册表修改一些问题
- Android 自定义View (一)
- 使用OleDb操作acces参数化SQL语句 出错