查看: 610|回复: 0

[Java语言] java编程中实现调用js方法分析

发表于 2017-10-3 13:32:52
尚学堂AD

本文实例讲述了java编程中实现调用js方法。分享给大家供大家参考,具体如下:

  1. /*
  2. * 加载脚本引擎,并在java中调用js方法
  3. */
  4. public void test2()
  5. {
  6. ScriptEngineManager manager = new ScriptEngineManager();
  7. ScriptEngine engine = manager.getEngineByName("javascript");
  8. try {
  9. String str="2&1";
  10. Double d = (Double) engine.eval(str);
  11. Integer i=d.intValue();
  12. System.out.println(i);
  13. } catch (ScriptException ex) {
  14. ex.printStackTrace();
  15. }
  16. }
复制代码
  1. /*
  2. * 在java中调用js,jdk1.6中有加载js引擎类,然后由它来调用js方法。
  3. * 并通过JDK平台给script的方法中的形参赋值
  4. */
  5. public void test(String name)
  6. {
  7. ScriptEngineManager sem = new ScriptEngineManager();
  8. /*
  9. *sem.getEngineByExtension(String extension)参数为js
  10. sem.getEngineByMimeType(String mimeType) 参数为application/javascript 或者text/javascript
  11. sem.getEngineByName(String shortName)参数为js或javascript或JavaScript
  12. */
  13. ScriptEngine se = sem.getEngineByName("js");
  14. try
  15. {
  16. String script = "function say(){ return 'hello,'"+name+"; }";
  17. se.eval(script);
  18. Invocable inv2 = (Invocable) se;
  19. String res=(String)inv2.invokeFunction("say",name);
  20. System.out.println(res);
  21. }
  22. catch(Exception e)
  23. {
  24. e.printStackTrace();
  25. }
  26. }
复制代码
  1. /*
  2. * 演示如何将java中对象作为js中全局变量,同时演示将file类赋给脚本语言,并获得其属性。
  3. */
  4. public void testScriptVariables()
  5. {
  6. ScriptEngineManager sem=new ScriptEngineManager();
  7. ScriptEngine engine=sem.getEngineByName("js");
  8. File file=new File("c://1.txt");
  9. engine.put("f", file);
  10. try {
  11. engine.eval("println('path:'+f.getPath())");//无法使用alert方法
  12. } catch (ScriptException e) {
  13. e.printStackTrace();
  14. }
  15. }
复制代码
  1. /*
  2. * 演示如何在java中如何通过线程来启动一个js方法
  3. */
  4. public void testScriptInterface() throws ScriptException
  5. {
  6. ScriptEngineManager sem=new ScriptEngineManager();
  7. ScriptEngine engine=sem.getEngineByName("js");
  8. String script="var obj=new Object();obj.run=function(){println('test thread')}";
  9. engine.eval(script);
  10. Object obj=engine.get("obj");//获取js中对象
  11. Invocable inv=(Invocable)engine;
  12. Runnable r=inv.getInterface(obj,Runnable.class);
  13. Thread t=new Thread(r);
  14. t.start();
  15. }
复制代码

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java字符与字符串操作技巧总结》、《Java数组操作技巧总结》、《Java数学运算技巧总结》、《Java编码操作技巧总结》和《Java数据结构与算法教程》

希望本文所述对大家java程序设计有所帮助。



回复

使用道具 举报