您的位置:

java程序执行js脚本(java执行脚本语言)

java程序执行js脚本(java执行脚本语言)

更新:

本文目录一览:

如何用java执行指定页面中的js代码

要在java中执行js代码,首先明白,java不支持浏览器本身的方法。支持自定义的js方法,否则会报错

先新建一个js文件:jsss.js

内容如下:

function aa(a,b){    return a+b;

}

然后在java中写代码:

public class ZipTest {

public static void main(String[] args) throws Exception {

ScriptEngineManager manager = new ScriptEngineManager();

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

String jsFileName="G:\\javaPro\\zmwmcc\\WebRoot\\jsss.js";

FileReader reader = new FileReader(jsFileName);   // 执行指定脚本             engine.eval(reader);

if(engine instanceof Invocable) {

Invocable invoke = (Invocable)engine;    // 调用merge方法,并传入两个参数

Double c = (Double)invoke.invokeFunction("aa", 2, 3); //调用了js的aa方法

System.out.println(c);

}

// engine.eval("alert(\"js alert\");");    // 不能调用浏览器中定义的js函数 // 错误,会抛出alert引用不    }

}

如何在java中调用js方法

在Java中调用js文件中的function,传入调用参数,并获取返回值

js文件中的merge函数将两个参数a,b相加,并返回c。

// expression.js

function merge(a, b) {

c = a * b;

return c;

}

在Java代码中读取js文件,并参数两个参数,然后回去返回值。

package com.sinaapp.manjushri;

import java.io.FileReader;

import javax.script.Invocable;

import javax.script.ScriptEngine;

import javax.script.ScriptEngineManager;

/** * Java调用并执行js文件,传递参数,并活动返回值 * * @author manjushri */

public class ScriptEngineTest {

public static void main(String[] args) throws Exception {

ScriptEngineManager manager = new ScriptEngineManager();

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

String jsFileName = "expression.js"; // 读取js文件

FileReader reader = new FileReader(jsFileName); // 执行指定脚本

engine.eval(reader);

if(engine instanceof Invocable) {

Invocable invoke = (Invocable)engine; // 调用merge方法,并传入两个参数

// c = merge(2, 3);

Double c = (Double)invoke.invokeFunction("merge", 2, 3);

System.out.println("c = " + c);

}

reader.close();

}

}

输出结果:

c = 5.0

如何通过java代码调用js

JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码。

在Java中直接调用js代码

不能调用浏览器中定义的js函数,会抛出异常提示ReferenceError: “alert” is not defined。

package com.sinaapp.manjushri;

import javax.script.ScriptEngine;

import javax.script.ScriptEngineManager;

import javax.script.ScriptException; /** * 直接调用js代码 */

public class ScriptEngineTest {

public static void main(String[] args) {

ScriptEngineManager manager = new ScriptEngineManager();

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

try{

engine.eval("var a=3; var b=4;print (a+b);");

// engine.eval("alert(\"js alert\");"); // 不能调用浏览器中定义的js函数 // 错误,会抛出alert引用不存在的异常

}catch(ScriptException e){

e.printStackTrace();

}

}

}

java程序中运行js脚本

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

public class ExecJs {

/**

* 记录日志类

*/

private Logger log = Logger.getLogger(ExecJs.class);

/**

* 后置处理,执行js脚本

* @param js

* @throws Exception

*/

public void execJs(String js, MapString,Object map) throws Exception {

if (log.isDebugEnabled()) {

log.debug("execJs js : " + js);

IteratorEntryString, Object it = map.entrySet().iterator();

while (it.hasNext()) {

EntryString, Object entry = (EntryString, Object) it.next();

log.info("EXECJS MAP : " + entry.getKey() + "---" + entry.getValue());

}// end while

}// end if

if ("".equals(js) || js == null) {

log.info("EXECJS ERROR : JAVASCRIPT CONTENT IS NULL");

} else if(map == null || map.size()=0){

log.info("EXECJS ERROR : MAP CONTENT IS NULL");

} else {

// 获取脚本引擎

ScriptEngineManager mgr = new ScriptEngineManager();

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

// 绑定数据

ScriptContext newContext = new SimpleScriptContext();

Bindings bind = newContext.getBindings(ScriptContext.ENGINE_SCOPE);

bind.putAll(map);

try {

engine.setBindings(bind, ScriptContext.ENGINE_SCOPE);

engine.eval(js);

} catch (Exception e) {

log.info("EXECJS EXCEPTION : EXECUTE JAVASCRIPT EXCEPTION", e);

throw (e);

}// end try

}// end if

}

}

java程序执行js脚本(java执行脚本语言)

本文目录一览: 1、如何用java执行指定页面中的js代码 2、如何在java中调用js方法 3、如何通过java代码调用js 4、java程序中运行js脚本 如何用java执行指定页面中的js代码

2023-12-08
java程序js脚本(Java脚本)

本文目录一览: 1、java程序中运行js脚本 2、怎么把JS嵌入到Java程序中 3、java脚本里怎么写javascript 4、JS脚本怎么运行? 5、如何在js脚本中写java代码 6、如何把

2023-12-08
java中执行js(java中执行sql语句)

本文目录一览: 1、如何在java中调用js方法 2、如何通过java代码调用js 3、java用什么调用js代码 4、java怎么调用javascript 5、java程序中运行js脚本 6、请问怎

2023-12-08
js控制java脚本,js 脚本语言

2022-11-25
java里面引用js脚本(用js写脚本)

本文目录一览: 1、java中怎么调用js代码 2、如何把java代码嵌入到javascript中 3、java程序中运行js脚本 4、java怎么调用javascript 5、如何在java中调用j

2023-12-08
四种java脚本语言,java脚本语言有哪些

2022-11-19
Java执行Bat脚本

2023-05-20
java脚本语言缩写(java的脚本语言)

2022-11-11
iosjs脚本,ios执行js脚本

本文目录一览: 1、关于iphone自动化测试的,需要写一个脚本,存成js格式,因为是在苹果机上做测试,怎么创建js脚本? 2、iPhone手机有没有浏览器支持扩张油猴子?我有脚本,想加载进去用!JS

2023-12-08
用java执行python,java程序怎么执行

2022-11-19
java调用js,java调用js脚本

2022-11-28
js代码安装脚本,电脑运行js脚本

本文目录一览: 1、怎么在谷歌浏览器安装js脚本调试插件 2、JSbox如何添加脚本 3、JS脚本怎么运行? 4、怎么安装js脚本 怎么在谷歌浏览器安装js脚本调试插件 首先我们打开开发者工具,你可以

2023-12-08
golang最快脚本,golang执行shell脚本

2022-11-27
java脚本,java脚本怎么运行

2023-01-09
java模拟执行js,java执行java

本文目录一览: 1、如何用java执行指定页面中的js代码 2、如何在java中调用js方法 3、请问怎么写java调用node环境运行js代码? 4、java程序中运行js脚本 如何用java执行指

2023-12-08
js运行代码教程,运行js脚本

2022-11-23
定制java应用程序启动脚本,运行java脚本

2022-11-20
java与脚本引擎,Java脚本引擎

2022-11-16
js脚本编程之实战一(js脚本代码大全)

本文目录一览: 1、怎么学好js? 2、JS编程是什么意思? 3、用javascript脚本语言编写一个 计算器计算加减乘除 ? 谢谢,很急!大家帮帮忙呀!!! 4、如何编写一个自动登录的js脚本 怎

2023-12-08
java执行sql,java执行sql脚本工具

2023-01-07