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);
目录
相关文章
|
1月前
|
JavaScript 前端开发 Java
Java和JavaScript的区别
【4月更文挑战第8天】Java和JavaScript的区别
15 1
|
1月前
|
前端开发 JavaScript Java
Java和JavaScript的应用场景有显著的不同
【4月更文挑战第8天】Java和JavaScript的应用场景有显著的不同
12 1
|
1天前
|
JavaScript 前端开发 Java
《手把手教你》系列技巧篇(四十)-java+ selenium自动化测试-JavaScript的调用执行-下篇(详解教程)
【5月更文挑战第4天】本文介绍了如何使用JavaScriptExecutor在自动化测试中实现元素高亮显示。通过创建并执行JS代码,可以改变元素的样式,例如设置背景色和边框,以突出显示被操作的元素。文中提供了一个Java示例,展示了如何在Selenium中使用此方法,并附有代码截图和运行效果展示。该技术有助于跟踪和理解测试过程中的元素交互。
6 0
|
2天前
|
Web App开发 JavaScript 前端开发
《手把手教你》系列技巧篇(三十九)-java+ selenium自动化测试-JavaScript的调用执行-上篇(详解教程)
【5月更文挑战第3天】本文介绍了如何在Web自动化测试中使用JavaScript执行器(JavascriptExecutor)来完成Selenium API无法处理的任务。首先,需要将WebDriver转换为JavascriptExecutor对象,然后通过executeScript方法执行JavaScript代码。示例用法包括设置JS代码字符串并调用executeScript。文章提供了两个实战场景:一是当时间插件限制输入时,用JS去除元素的readonly属性;二是处理需滚动才能显示的元素,利用JS滚动页面。还给出了一个滚动到底部的代码示例,并提供了详细步骤和解释。
25 10
|
15天前
|
JavaScript 前端开发 Oracle
java和JavaScript的区别
java和JavaScript的区别
11 3
|
2月前
|
JavaScript Java
什么?java中居然可以执行js代码了?真是不知者不怪
什么?java中居然可以执行js代码了?真是不知者不怪
14 1
|
2月前
|
开发框架 前端开发 JavaScript
Java和JavaScript区别与联系
Java和JavaScript区别与联系
38 0
|
2月前
|
前端开发 JavaScript Java
【Java】Java与JavaScript:探究它们的区别与联系
【Java】Java与JavaScript:探究它们的区别与联系
51 0
|
2月前
|
前端开发 JavaScript 安全
浅谈 Java和JavaScript区别与联系
浅谈 Java和JavaScript区别与联系
|
2月前
|
移动开发 前端开发 JavaScript
Java 和 JavaScript 的奇妙协同:语法结构的对比与探索(下)
Java 和 JavaScript 的奇妙协同:语法结构的对比与探索(下)