Learn · concepts

Что такое JavaScript-скриптинг в GraalVM?

GraalVM JavaScript — это быстрый JS-движок, работающий на JVM. Он позволяет Java-приложениям встраивать JavaScript, чтобы пользователи могли создавать сценарии и мгновенно их перезагружать.

TRtrolPublished 3 min read

Что такое GraalVM JavaScript?

GraalVM JavaScript — это быстрый, соответствующий стандартам движок JavaScript, работающий на JVM, являющийся частью проекта GraalVM. Java-приложения внедряют его, чтобы пользователи могли писать JavaScript, который вызывает функции хост-программы и перезагружается на лету. В Java-приложении это означает добавление или изменение поведения в JavaScript без перекомпиляции Java-кода.

Представьте себе это как песочницу для добавления функций. Приложение предоставляет скрипту определенные объекты и методы, и скрипт вызывает эти методы для выполнения работы внутри приложения. Когда вы изменяете скрипт и сохраняете его, движок немедленно перезагружает его, перезапуск не требуется

Почему приложения встраивают движки скриптов

Приложения, такие как клиенты Minecraft, встраивают движки JavaScript по нескольким практическим причинам:

  • Горячая перезагрузка: измените скрипт и увидите результат без перезапуска или пересборки.
  • Безопасная среда: хост определяет, какие объекты и классы Java скрипт может затрагивать.
  • Быстрая итерация: тестируйте новое поведение за секунды вместо минут времени компиляции.
  • Пользовательская настройка: позволяйте игрокам писать собственные функции на знакомом языке

Как это проявляется у клиента

Клиент, использующий GraalVM JavaScript, обычно предоставляет скриптам точку входа для регистрации, а затем небольшой набор прокси-объектов, которые связывают JavaScript с внутренними компонентами программы. Пользователи пишут скрипт, помещают его в папку со скриптами, и движок загружает его. Таким образом, клиент может позволить пользователям добавлять функции на JavaScript вместо компиляции мода.

GraalVM JavaScript против Node.js

АспектGraalVM JavaScriptNode.js
Среда выполненияРаботает на JVMАвтономная среда выполнения на основе V8
Область примененияВстраивается в Java-приложенияJavaScript для серверной части или CLI-инструменты
ЗапускЧасть процесса хостаОтдельный процесс
ДоступХост предоставляет определенные объектыПолный доступ к ОС
ПроизводительностьJIT-компиляция, очень быстроТакже очень быстро, разные компромиссы

Оба отлично подходят для запуска JavaScript; они просто созданы для разных контекстов. GraalVM — правильный выбор, когда вам нужно, чтобы Java-приложение позволяло пользователям писать сценарии на JavaScript.

FAQ