java 调用 JavaScript

简介: 可以实现 java 中复杂的算数计算

获得 JavaScript 脚本引擎

ScriptEngineManager scriptEngineManager = new ScriptEngineManager();

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

定义获取变量

// 定义变量
engine.put("msg", "this is msg");

// 获取变量
System.out.println(engine.get("msg"));

定义并执行方法

// 定义函数
engine.eval("function add (num1, num2) {return num1 + num2;}");

// engine 该类同样实现了 Invocable 接口 : 转型过去拿到 API
Invocable invocable = (Invocable) engine;

// 调用函数
Object invokeFunction = invocable.invokeFunction("add", new Object[] {10, 10});
System.out.println(invokeFunction);

执行本地 JavaScript 代码

URL resource = JavaScriptDemo.class.getClassLoader().getResource("JavaScriptDemo.js");

FileReader fileReader = new FileReader(resource.getPath());
engine.eval(fileReader);
fileReader.close();

外部 JavaScript 代码

/**
 * 被java调用的外部 JavaScript
 */
function demo() {
    var i = 110;
    var j = 110;
    console.log("this is a i + j : " + (i + j));
}

demo();

执行复杂的算数表达式

Object eval = engine.eval("10 * 10 + 10");
System.out.println(eval);
目录
相关文章
|
29天前
|
JavaScript Java
什么?java中居然可以执行js代码了?真是不知者不怪
什么?java中居然可以执行js代码了?真是不知者不怪
13 1
|
1月前
|
开发框架 前端开发 JavaScript
Java和JavaScript区别与联系
Java和JavaScript区别与联系
31 0
|
1月前
|
前端开发 JavaScript Java
【Java】Java与JavaScript:探究它们的区别与联系
【Java】Java与JavaScript:探究它们的区别与联系
32 0
|
1月前
|
前端开发 JavaScript 安全
浅谈 Java和JavaScript区别与联系
浅谈 Java和JavaScript区别与联系
|
1月前
|
移动开发 前端开发 JavaScript
Java 和 JavaScript 的奇妙协同:语法结构的对比与探索(下)
Java 和 JavaScript 的奇妙协同:语法结构的对比与探索(下)
|
1月前
|
JavaScript 前端开发 Java
Java 和 JavaScript 的奇妙协同:语法结构的对比与探索(中)
Java 和 JavaScript 的奇妙协同:语法结构的对比与探索(中)
|
1月前
|
JavaScript 前端开发 Java
Java 和 JavaScript 的奇妙协同:语法结构的对比与探索(上)
Java 和 JavaScript 的奇妙协同:语法结构的对比与探索(上)
|
2月前
|
JavaScript 前端开发 Java
【热点话题】----还分不清Java和JavaScript嘛【JavaScript猜数字游戏】
【热点话题】----还分不清Java和JavaScript嘛【JavaScript猜数字游戏】
20 1
|
2月前
|
前端开发 JavaScript Java
Java和JavaScript区别与联系
【2月更文挑战第3天】
131 0
Java和JavaScript区别与联系
|
2月前
|
存储 JavaScript 前端开发
Java与JavaScript同源不同性
Java与JavaScript同源不同性