java中调用js_java编程中实现调用js方法分析
本文实例讲述了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方法分析相关推荐
- Java开发人员在编程中常见的雷!
身为一名Java从业人员,其职场生涯就是一边踩"坑",一边上升的过程.这个过程中不仅要学会修改无数bug,也要学会越过很多"坑".今天,千锋老师为大家分享一些J ...
- 分享一些Java开发人员在编程中最容易踩雷的地方!
身为一名Java从业人员,其职场生涯就是一边踩"坑",一边上升的过程.这个过程中不仅要学会修改无数bug,也要学会越过很多"坑".今天,小千为大家分享一些Jav ...
- 一些Java开发人员在编程中常见的雷!
身为一名Java从业人员,其职场生涯就是一边踩"坑",一边上升的过程.这个过程中不仅要学会修改无数bug,也要学会越过很多"坑".今天,小千为大家分享一些Jav ...
- hmi中的宏指令是c语言,HMI中的宏指令编程中的语句执行顺序是?
HMI中的宏指令编程中的语句执行顺序是? 以威纶通里的例子为例: 4. if结构语句 macro_command main() int k[10], j for j = 0 to 10 k[j] = ...
- Java之基础(1) - 编程中“为了性能”尽量要做到的一些地方
最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了. 下面是参考网络资源总结的一些在Ja ...
- java的成员方法_java编程中的成员方法是什么?
DIEA 成员方法描述对象所具有的功能或操作,反映对象的行为,是具有某种相对独立功能的程序模块.它与过去所说的子程序.函数等概念相当.一个类或对象可以有多个成员方法,对象通过执行它的成员方法对传来的消 ...
- java thread isalive_Java线程编程中isAlive()和join()的使用详解
一个线程如何知道另一线程已经结束?Thread类提供了回答此问题的方法. 有两种方法可以判定一个线程是否结束.第一,可以在线程中调用isAlive().这种方法由Thread定义,它的通常形式如下: ...
- python面向对象编程中_Python面向对象编程中关于类和方法
类和实例 python是一个面向对象的语言,而面向对象最重要的概念就是类和实例, 记得刚学习的时候不太理解这些概念,直到老师说了一句"物以类聚". 没错就是类, 归类 物以类聚 类 ...
- matlab中str_,str编程中是啥意思 str在程序中什么意思
在编程中char是什么意思? 在编程中char是申明一个字符型变量的语句.比如 char str 这样申明后,str就表示是一个长度为一个字节的字符变量.在C语言中一般表示是一个字符,但在C51中,也 ...
最新文章
- kinect c++
- 2.11 向量化-深度学习-Stanford吴恩达教授
- Java 7:Fork / Join框架示例
- BIOS误删win10引导 delete boot option如何恢复
- Bootloader - main system - Recovery的三角关系【转】
- 网络多人聊天室1.0 群聊
- threejs 加载obj模型
- 天狗农业技术网采用的跨平台的Amaze UI设计
- Codeforces - Captain Flint and Treasure
- java京东秒杀_小猿圈Python之实现京东秒杀功能技巧
- 偏向锁,轻量级锁,重量级锁的核心原理
- 微信小程序返回上一页 没有上一页的情况下返回首页
- 嵌入式Linux系统开发入门宝典(第2版)
- PageHelper这种情况下有坑!注意别吃亏
- 刷脸签到python代码_背景提升 | “刷脸”时代,如何运用Python实现人脸识别?
- a标签与link标签的区别
- c语言开发五轴后处理,基于UGCLS文件使用C语言制作智能后处理工具.doc
- 一个Linux下的网络模拟工具 Core
- 【八大排序③】快速排序(动图演绎Hoare法、挖坑法、前后指针法)
- 联想电脑扬天系列和thinkpad