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

/*

* 加载脚本引擎,并在java中调用js方法

*/

public void test2()

{

ScriptEngineManager manager = new ScriptEngineManager();

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

try {

String str="2&1";

Double d = (Double) engine.eval(str);

Integer i=d.intValue();

System.out.println(i);

} catch (ScriptException ex) {

ex.printStackTrace();

}

}

/*

* 在java中调用js,jdk1.6中有加载js引擎类,然后由它来调用js方法。

* 并通过JDK平台给script的方法中的形参赋值

*/

public void test(String name)

{

ScriptEngineManager sem = new ScriptEngineManager();

/*

*sem.getEngineByExtension(String extension)参数为js

sem.getEngineByMimeType(String mimeType) 参数为application/javascript 或者text/javascript

sem.getEngineByName(String shortName)参数为js或javascript或JavaScript

*/

ScriptEngine se = sem.getEngineByName("js");

try

{

String script = "function say(){ return 'hello,'"+name+"; }";

se.eval(script);

Invocable inv2 = (Invocable) se;

String res=(String)inv2.invokeFunction("say",name);

System.out.println(res);

}

catch(Exception e)

{

e.printStackTrace();

}

}

/*

* 演示如何将java中对象作为js中全局变量,同时演示将file类赋给脚本语言,并获得其属性。

*/

public void testScriptVariables()

{

ScriptEngineManager sem=new ScriptEngineManager();

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

File file=new File("c://1.txt");

engine.put("f", file);

try {

engine.eval("println('path:'+f.getPath())");//无法使用alert方法

} catch (ScriptException e) {

e.printStackTrace();

}

}

/*

* 演示如何在java中如何通过线程来启动一个js方法

*/

public void testScriptInterface() throws ScriptException

{

ScriptEngineManager sem=new ScriptEngineManager();

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

String script="var obj=new Object();obj.run=function(){println('test thread')}";

engine.eval(script);

Object obj=engine.get("obj");//获取js中对象

Invocable inv=(Invocable)engine;

Runnable r=inv.getInterface(obj,Runnable.class);

Thread t=new Thread(r);

t.start();

}

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

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

java中调用js_java编程中实现调用js方法分析相关推荐

  1. Java开发人员在编程中常见的雷!

    身为一名Java从业人员,其职场生涯就是一边踩"坑",一边上升的过程.这个过程中不仅要学会修改无数bug,也要学会越过很多"坑".今天,千锋老师为大家分享一些J ...

  2. 分享一些Java开发人员在编程中最容易踩雷的地方!

    身为一名Java从业人员,其职场生涯就是一边踩"坑",一边上升的过程.这个过程中不仅要学会修改无数bug,也要学会越过很多"坑".今天,小千为大家分享一些Jav ...

  3. 一些Java开发人员在编程中常见的雷!

    身为一名Java从业人员,其职场生涯就是一边踩"坑",一边上升的过程.这个过程中不仅要学会修改无数bug,也要学会越过很多"坑".今天,小千为大家分享一些Jav ...

  4. hmi中的宏指令是c语言,HMI中的宏指令编程中的语句执行顺序是?

    HMI中的宏指令编程中的语句执行顺序是? 以威纶通里的例子为例: 4. if结构语句 macro_command main() int k[10], j for j = 0 to 10 k[j] =  ...

  5. Java之基础(1) - 编程中“为了性能”尽量要做到的一些地方

    最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了. 下面是参考网络资源总结的一些在Ja ...

  6. java的成员方法_java编程中的成员方法是什么?

    DIEA 成员方法描述对象所具有的功能或操作,反映对象的行为,是具有某种相对独立功能的程序模块.它与过去所说的子程序.函数等概念相当.一个类或对象可以有多个成员方法,对象通过执行它的成员方法对传来的消 ...

  7. java thread isalive_Java线程编程中isAlive()和join()的使用详解

    一个线程如何知道另一线程已经结束?Thread类提供了回答此问题的方法. 有两种方法可以判定一个线程是否结束.第一,可以在线程中调用isAlive().这种方法由Thread定义,它的通常形式如下: ...

  8. python面向对象编程中_Python面向对象编程中关于类和方法

    类和实例 python是一个面向对象的语言,而面向对象最重要的概念就是类和实例, 记得刚学习的时候不太理解这些概念,直到老师说了一句"物以类聚". 没错就是类, 归类 物以类聚 类 ...

  9. matlab中str_,str编程中是啥意思 str在程序中什么意思

    在编程中char是什么意思? 在编程中char是申明一个字符型变量的语句.比如 char str 这样申明后,str就表示是一个长度为一个字节的字符变量.在C语言中一般表示是一个字符,但在C51中,也 ...

最新文章

  1. kinect c++
  2. 2.11 向量化-深度学习-Stanford吴恩达教授
  3. Java 7:Fork / Join框架示例
  4. BIOS误删win10引导 delete boot option如何恢复
  5. Bootloader - main system - Recovery的三角关系【转】
  6. 网络多人聊天室1.0 群聊
  7. threejs 加载obj模型
  8. 天狗农业技术网采用的跨平台的Amaze UI设计
  9. Codeforces - Captain Flint and Treasure
  10. java京东秒杀_小猿圈Python之实现京东秒杀功能技巧
  11. 偏向锁,轻量级锁,重量级锁的核心原理
  12. 微信小程序返回上一页 没有上一页的情况下返回首页
  13. 嵌入式Linux系统开发入门宝典(第2版)
  14. PageHelper这种情况下有坑!注意别吃亏
  15. 刷脸签到python代码_背景提升 | “刷脸”时代,如何运用Python实现人脸识别?
  16. a标签与link标签的区别
  17. c语言开发五轴后处理,基于UGCLS文件使用C语言制作智能后处理工具.doc
  18. 一个Linux下的网络模拟工具 Core
  19. 【八大排序③】快速排序(动图演绎Hoare法、挖坑法、前后指针法)
  20. 联想电脑扬天系列和thinkpad

热门文章

  1. js-ajax/axios的拦截器
  2. 舍瓦正式宣布告别AC米兰 7载红黑情缘终成历史
  3. 如何申请微信视频号?原创很重要!需注意这2点
  4. HTML技能点--表单enctype属性解释
  5. Typescript封装axios
  6. mule esb java实例_基于AnypointStudio IDE开发MuleESB实例
  7. 搞笑走进校园,B站用户争相点赞
  8. html边框白色实线rgba,CSS3 RGBA 属性高级用法
  9. 阻碍你前程发展的,不一定是能力,有可能是这个
  10. 实现前后端分离-vue