Learn · concepts

GraalVM JavaScript 脚本编程是什么??

GraalVM JavaScript 是一种快速的 JS 引擎,可在 JVM 上运行。它允许 Java 应用嵌入 JavaScript,以便用户可以脚本化功能并立即重新加载它们.

TRtrolPublished 1 min read

GraalVM JavaScript 是什么??

GraalVM JavaScript 是一个快速且符合标准的 JavaScript 引擎,它运行在 JVM 上,是 GraalVM 项目的一部分。Java 应用程序将其嵌入,以便用户可以编写调用宿主程序并即时重新加载的 JavaScript 代码。在 Java 应用程序中,这意味着可以在 JavaScript 中添加或更改行为,而无需重新编译 Java 代码。

把它想象成一个沙盒,用于添加功能。应用程序将某些对象和方法暴露给脚本,脚本调用这些方法在应用程序内部执行工作。当您更改脚本并保存它时,引擎会立即重新加载它,无需重启

应用程序为何嵌入脚本引擎

诸如 Minecraft 客户端之类的应用程序嵌入 JavaScript 引擎的原因有几个:

  • 热重载:更改脚本并立即看到效果,无需重启或重建。
  • 安全环境:宿主决定脚本可以访问哪些对象和 Java 类。
  • 快速迭代:在几秒钟内测试新的行为,而不是花费几分钟的编译时间。
  • 用户自定义:允许玩家使用熟悉的语言编写自己的功能

客户中如何呈现

通常,嵌入 GraalVM JavaScript 的客户端会提供一个入口点,用于注册脚本,然后是一组小的代理对象,它们连接 JavaScript 与程序的内部机制。用户编写脚本,将其放入脚本文件夹中,引擎加载它。 这样,客户端就可以让用户使用 JavaScript 添加功能,而无需编译 mod.

GraalVM JavaScript 与 Node.js

方面GraalVM JavaScriptNode.js
运行时运行在 JVM 上独立的 V8 运行时
用例嵌入到 Java 应用中服务器端 JavaScript 或 CLI 工具
启动主进程的一部分独立进程
访问主进程暴露特定对象完整的操作系统访问权限
性能JIT 编译,非常快同样非常快,但有不同的权衡

两者都非常擅长运行 JavaScript;它们只是针对不同的场景构建的。当你想让 Java 应用允许用户使用 JavaScript 脚本时,GraalVM 是合适的选择。

常见问题解答