在 Java 8 中,Oracle 引入了一个全新的 JavaScript 引擎——Nashorn,用于替代老旧的 Rhino 引擎。Nashorn 基于 JSR-292(动态语言支持)实现,性能更高、兼容性更好,能够让你在 Java 应用中无缝执行 JavaScript 代码。本文将带你从零开始,轻松掌握 Java Nashorn引擎 的基本使用方法。
Nashorn(发音为“nas-horn”,意为“犀牛角”)是 Java 平台内置的高性能 JavaScript 引擎。它完全兼容 ECMAScript 5.1 标准,并能与 Java 对象无缝交互。通过 Nashorn,你可以在 Java 程序中动态执行 JavaScript 脚本,实现灵活的业务逻辑配置或脚本扩展功能。
Nashorn 自 Java 8 起就已内置,因此你只需安装 JDK 8 或 JDK 11 即可使用。注意:从 Java 15 开始,Nashorn 已被移除,但你可以通过独立的 nashorn-core Maven 依赖继续使用。
下面是一个最简单的例子,展示如何在 Java 中执行一段 JavaScript 代码:
import javax.script.ScriptEngine;import javax.script.ScriptEngineManager;import javax.script.ScriptException;public class NashornDemo { public static void main(String[] args) { // 获取 Nashorn 引擎 ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("nashorn"); try { // 执行 JavaScript 代码 engine.eval("print('Hello from JavaScript in Java!');"); } catch (ScriptException e) { e.printStackTrace(); } }} 运行上述代码,控制台将输出:Hello from JavaScript in Java!
Nashorn 最强大的功能之一是允许 Java 和 JavaScript 相互调用。你可以将 Java 对象传入 JavaScript 环境,也可以在 JavaScript 中创建 Java 对象。
import javax.script.ScriptEngine;import javax.script.ScriptEngineManager;import javax.script.ScriptException;import javax.script.Bindings;public class InteropDemo { public static void main(String[] args) { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("nashorn"); // 将 Java 变量绑定到 JavaScript 上下文 Bindings bindings = engine.createBindings(); bindings.put("name", "Alice"); bindings.put("age", 25); try { engine.eval( "var message = 'Hello, ' + name + '! You are ' + age + ' years old.';\n" + "print(message);", bindings ); } catch (ScriptException e) { e.printStackTrace(); } }} 这段代码会输出:Hello, Alice! You are 25 years old.
你甚至可以在 JavaScript 中直接调用 Java 类和方法:
engine.eval( "var ArrayList = Java.type('java.util.ArrayList');\n" + "var list = new ArrayList();\n" + "list.add('Java');\n" + "list.add('Nashorn');\n" + "print('List size: ' + list.size());"); 输出结果为:List size: 2
虽然 Nashorn 在 Java 8 和 11 中表现优异,但自 Java 15 起已被官方移除。如果你使用的是较新版本的 JDK,可以通过添加以下 Maven 依赖继续使用:
<dependency> <groupId>org.openjdk.nashorn</groupId> <artifactId>nashorn-core</artifactId> <version>15.4</version></dependency> 通过本教程,你应该已经掌握了 Java调用JavaScript 的基本方法,并了解了如何利用 JavaScript引擎Java 实现动态脚本功能。Nashorn 是一个强大而灵活的工具,特别适合需要运行时配置或插件化架构的应用场景。
无论你是想实现规则引擎、动态表单验证,还是构建可扩展的系统,Nashorn教程 都为你打开了新世界的大门。赶快动手试试吧!
本文由主机测评网于2025-12-05发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025123399.html