Java 中执行 JavaScript399



随着现代 Web 应用程序的日益复杂,有时需要在 Java 应用程序中执行 JavaScript 代码。这可以在各种情况下派上用场,例如:

自动化 Web 浏览
与 Web 页面交互
在 Java 中执行 JavaScript 函数

方法

在 Java 中执行 JavaScript 有几种方法,包括:

使用 Java 嵌入式脚本引擎 (JESS)
使用 Rhino JavaScript 引擎
使用 Nashorn JavaScript 引擎 (Java 8 及更高版本)

使用 Java 嵌入式脚本引擎 (JESS)


JESS 是 Java 9 中引入的一个 API,允许在 Java 应用程序中嵌入和执行脚本语言,包括 JavaScript。要使用 JESS,请执行以下步骤:

导入 包。
创建 ScriptEngine 对象。
使用 eval 方法执行 JavaScript 代码。


import .*;
public class JESSExample {
public static void main(String[] args) throws ScriptException {
ScriptEngine engine = new ScriptEngineManager().getEngineByName("JavaScript");
("var message = 'Hello, world!';");
(("message"));
}
}

使用 Rhino JavaScript 引擎


Rhino 是 Mozilla 开发的一个 JavaScript 引擎,可以嵌入到 Java 应用程序中。要使用 Rhino,请执行以下步骤:

导入 包。
创建 Context 和 Scriptable 对象。
使用 evaluateString 方法执行 JavaScript 代码。


import .*;
public class RhinoExample {
public static void main(String[] args) {
Context context = ();
Scriptable scope = ();
Object result = (scope, "var message = 'Hello, world!';", "", 1, null);
(result);
}
}

使用 Nashorn JavaScript 引擎


Nashorn 是 Java 8 及更高版本中提供的原生 JavaScript 引擎。要使用 Nashorn,请执行以下步骤:

导入 包。
创建 ScriptEngine 对象。
使用 eval 方法执行 JavaScript 代码。


import .*;
public class NashornExample {
public static void main(String[] args) throws ScriptException {
ScriptEngine engine = new ScriptEngineManager().getEngineByName("Nashorn");
("var message = 'Hello, world!';");
(("message"));
}
}

比较

JESS、Rhino 和 Nashorn 是执行 JavaScript 的流行选择,但各有优缺点:

JESS:JESS 是 Java 9 中引入的较新的 API,它提供了与 Java 脚本引擎交互的一致界面,但它可能缺乏 Rhino 和 Nashorn 提供的某些特性。
Rhino:Rhino 提供了广泛的特性,包括对 ECMAScript 5.1 标准的完整支持。但是,它不再积极维护。
Nashorn:Nashorn 是 Java 中执行 JavaScript 的最快选项,因为它是一个原生引擎。然而,它仅适用于 Java 8 及更高版本。


在 Java 中执行 JavaScript 为我们提供了在 Java 应用程序中利用 JavaScript 功能的可能性。通过使用 JESS、Rhino 或 Nashorn,我们可以实现自动化 Web 浏览、与 Web 页面交互以及在 Java 中执行 JavaScript 函数。选择最合适的引擎取决于特定需求和应用程序要求。

2025-02-03


上一篇:JavaScript Null 判断

下一篇:如何在 JavaScript 中给元素添加属性