Learn · concepts

Was ist GraalVM JavaScript Scripting?

GraalVM JavaScript ist eine schnelle JS-Engine, die auf der JVM läuft. Sie ermöglicht Java-Anwendungen, JavaScript einzubetten, sodass Benutzer Funktionen skripten und diese sofort neu laden können.

TRtrolPublished 3 min read

Was ist GraalVM JavaScript?

GraalVM JavaScript ist eine schnelle, standardskonforme JavaScript-Engine, die auf der JVM läuft und Teil des GraalVM-Projekts ist. Java-Anwendungen betten sie ein, sodass Benutzer JavaScript schreiben können, das Funktionen des Hostprogramms aufruft und dynamisch neu geladen wird. In einer Java-Anwendung bedeutet das, Verhalten in JavaScript hinzuzufügen oder zu ändern, ohne den Java-Code neu zu kompilieren.

Betrachten Sie es als eine Sandbox zum Hinzufügen von Funktionen. Die Anwendung legt bestimmte Objekte und Methoden für ein Skript bereit, und das Skript ruft diese Methoden auf, um Aufgaben innerhalb der App auszuführen. Wenn Sie das Skript ändern und speichern, lädt die Engine es sofort neu, ohne Neustart

Warum Apps Skript-Engines einbetten

Anwendungen wie Minecraft-Clients betten JavaScript-Engines aus einigen praktischen Gründen ein:

  • Hot Reload: Ändern Sie ein Skript und sehen Sie den Effekt, ohne neu starten oder neu aufbauen zu müssen.
  • Eine sichere Oberfläche: Der Host entscheidet genau, welche Objekte und Java-Klassen ein Skript beeinflussen kann.
  • Schnelle Iteration: Testen Sie neue Funktionen in Sekunden statt in Minuten der Kompilierzeit.
  • Benutzeranpassung: Lassen Sie Spieler eigene Features in einer vertrauten Sprache schreiben

Wie es sich beim Kunden zeigt

Ein Client, der GraalVM JavaScript einbettet, gibt Skripten üblicherweise einen Einstiegspunkt, um sich selbst zu registrieren, gefolgt von einer kleinen Menge von Proxy-Objekten, die JavaScript mit den internen Abläufen des Programms verbinden. Benutzer schreiben ein Skript, legen es in einen Skriptordner und die Engine lädt es. So kann ein Client Benutzern ermöglichen, Funktionen in JavaScript hinzuzufügen, anstatt einen Mod zu kompilieren.

GraalVM JavaScript vs. Node.js

AspektGraalVM JavaScriptNode.js
LaufzeitumgebungLäuft auf der JVMStandalone V8-basierte Laufzeitumgebung
AnwendungsfallIn Java-Anwendungen eingebettetServerseitiges JavaScript oder CLI-Tools
StartvorgangTeil des Host-ProzessesSeparater Prozess
ZugriffHost stellt bestimmte Objekte bereitVoller OS-Zugriff
LeistungJIT-kompiliert, sehr schnellEbenfalls sehr schnell, andere Kompromisse

Beide eignen sich hervorragend zum Ausführen von JavaScript; sie sind nur für unterschiedliche Kontexte ausgelegt. GraalVM ist die richtige Wahl, wenn Sie möchten, dass eine Java-Anwendung es Benutzern ermöglicht, in JavaScript zu programmieren.

FAQ