网站首页 > 文章中心 > 其它

Java执行js代码

作者:小编 更新时间:2023-08-09 13:16:17 浏览量:78人看过

如何在java中调用js方法

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

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

// expression.js

function merge(a, b) {

c = a * b;

Java执行js代码-图1

return c;

}

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

package com.sinaapp.manjushri;

import java.io.FileReader;

import javax.script.Invocable;

Java执行js代码-图2

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方法,并传入两个参数

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

reader.close();

输出结果:

如何通过java代码调用js

在Java中直接调用js代码

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

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

public static void main(String[] args) {

try{

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

}catch(ScriptException e){

e.printStackTrace();

请问怎么写java调用node环境运行js代码?

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

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

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

Java执行js代码-图3

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

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

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

以上就是土嘎嘎小编为大家整理的Java执行js代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章