您的位置:

java模拟执行js,java执行java

java模拟执行js,java执行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调用node环境运行js代码?

nodejs 运行代码可以在命令行中使用命令“ node /path/xxx.js ”来执行

所以我们可以借助 java 的 Runtime 类,可以执行系统本地的命令, 例如:

Linux系统下:Runtime.getRuntime().exec("node /path/xxx.js");

Window系统下:Runtime.getRuntime().exec("cmd /c node /path/xxx.js");

当然推荐使用 Apache-Commons-Exec 工具类,可以屏蔽不同系统命令差异,并且获取结果更简单

工具类使用可以参考此文: 网页链接

java程序中运行js脚本

我们要在Java中执行JavaScriptMethods.js中的execute(s1,s2)方法,JavaScriptMethods.js文件内容如下:

function execute(s1, s2){

return s1 + s2;

}

首先需要定义一个接口,这个接口中给出与要执行的JavaScript方法一样的方法签名,我们定义接口Methods,它的内容如下:

/**

* 接口中的方法签名必须与要执行的JavaScript方法一致

* @author yuncong

*

*/

public interface Methods {

public String execute(String s1,String s2);

}

然后,就可以用脚本引擎执行JavaScriptMethods.js中execute(s1,s2)方法了,具体内容写在下面的ExecuteScript类中的:

import java.io.FileReader;

import javax.script.Invocable;

import javax.script.ScriptEngine;

import javax.script.ScriptEngineManager;

public class ExecuteScript {

public static void main(String[] args) {

ScriptEngineManager manager = new ScriptEngineManager();

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

try {

String path = ExecuteScript.class.getResource("").getPath();

System.out.println(path);

// FileReader的参数为所要执行的js文件的路径

engine.eval(new FileReader(path + "JavaScriptMethods.js"));

if (engine instanceof Invocable) {

Invocable invocable = (Invocable) engine;

Methods executeMethod = invocable.getInterface(Methods.class);

System.out.println(executeMethod.execute("li", "yuncong"));

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

运行ExecuteScript类,输出如下:

?

1

2

/C:/Users/yuncong/git/login/target/classes/executescript/

liyuncong

java模拟执行js,java执行java

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

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
用java执行python,java程序怎么执行

2022-11-19
java执行cmd,java执行cmdwindows

2023-01-09
java文本执行是什么(java执行语句)

2022-11-16
java程序执行js脚本(java执行脚本语言)

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

2023-12-08
java执行js对象,js函数执行

本文目录一览: 1、JavaScript的对象怎么在java后台调用 2、java程序中运行js脚本 3、javascript中怎样用java中的对象 JavaScript的对象怎么在java后台调用

2023-12-08
执行java程序,Java代码执行

2023-01-04
重学java笔记,java笔记总结

2022-11-23
java执行dxl,Java执行js

2022-11-17
java执行cmd,java执行cmd使用相对路径

2023-01-09
java下执行dos命令(java用dos编译)

2022-11-09
java笔记,大学java笔记

2022-11-28
发篇java复习笔记(java课程笔记)

2022-11-09
java笔记,尚硅谷java笔记

2022-12-01
执行java,执行java字节码文件的工具是

2023-01-07
java学习笔记(java初学笔记)

2022-11-14
java第九天笔记,java第九章

2022-11-20
java调用cmd,java调用cmd执行bat

2023-01-10
php中执行java代码,js执行php代码

2023-01-06