在 Java 中调用 JavaScript 可以使用以下方法:使用 WebKit JavaScript 框架:通过 JSEngine 类执行 JavaScript 代码,获取返回值。使用 Rhino JavaScript 引擎:在 JavaScript 上下文中执行 JavaScript 代码,使用 get 方法获取返回值。使用 webview-bridge 库:注入 JavaScript Bridge,注册 Java 对象,在 JavaScript 中调用 Java 对象的方法。

如何用 Java 调用 JavaScript
引言
在 Web 开发中,有时需要在 Java 代码中调用 JavaScript 函数。本文将探讨如何使用 Java 调用 JavaScript。
方法
1. 使用 WebKit JavaScript 框架
WebKit JavaScript 框架提供了 JSEngine 类,允许 Java 代码与 JavaScript 交互。
立即学习“Java免费学习笔记(深入)”;
- 创建一个
JSEngine实例。 - 调用
executeScript方法执行 JavaScript 代码。 - 使用
getValue方法获取 JavaScript 函数的返回值。
代码示例:
// 创建 JavaScript 引擎
JSEngine engine = new JSEngine();
// 执行 JavaScript 代码
Object result = engine.executeScript("console.log('Hello, world!');");
// 获取返回值(可能为 null)
System.out.println(result);2. 使用 Rhino JavaScript 引擎
Rhino JavaScript 引擎是一个开源的 JavaScript 引擎,可以嵌入到 Java 中。
系统共有:常规管理,公告管理,新闻管理,产品管理,采购订单管理,留言反馈管理,短信管理,用户管理,管理员管理,在线邮件管理,系统模板管理,图品缩略图及水印管理,Flash幻灯片管理,统计调查管理,系统数据调用管理,自定义扩展管理,语言标签库管理。18个主要功能模块组成。5月10号更新:1、全新双语模式设计开发2、多级动态JS菜单,支持在线添加,修改,删除3、新增单页管理模块,如扩展企业简介,联系方
- 创建一个
Context和Scriptable对象。 - 使用
eval方法执行 JavaScript 代码。 - 使用
get方法获取 JavaScript 函数的返回值。
代码示例:
// 创建 JavaScript 上下文和作用域
Context context = Context.enter();
Scriptable scope = context.initStandardObjects();
// 执行 JavaScript 代码
Object result = context.evaluateString(scope, "console.log('Hello, Rhino!');", null, 1, null);
// 获取返回值(可能为 null)
System.out.println(result);3. 使用 webview-bridge 库
webview-bridge 库提供了一个方便的方式在 Java 和 JavaScript 之间通信。
- 在 WebView 中注入 JavaScript Bridge。
- 使用
WebView.addJavascriptInterface方法注册 Java 对象。 - 在 JavaScript 中调用 Java 对象的方法。
代码示例:
//注册Java对象 webView.addJavascriptInterface(new JavaObject(), "androidObj");
//JavaScript调用Java对象方法
androidObj.showInfo("Hello, webview-bridge!");结语
本文介绍了使用 Java 调用 JavaScript 的三种主要方法。选择哪种方法取决于项目的具体要求。










