- GraalVM JavaScript ist eine schnelle, standardskonforme JS-Engine, die auf der JVM läuft.
- Java-Anwendungen betten sie ein, sodass Benutzer JavaScript schreiben können, das Aufrufe an das Hostprogramm durchführt.
- Skripte werden dynamisch neu geladen, sodass Sie das Verhalten ändern können, ohne den Java-Code neu zu kompilieren.
- Der Host entscheidet genau, welche Objekte und Klassen ein Skript erreichen kann.
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 Aufrufe an das Hostprogramm sendet 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.
Wo Opal passt
Opal's Skripting-Engine läuft auf GraalVM JavaScript. Um mit dem Schreiben von Skripten zu beginnen, siehe den Skripting-Leitfaden.
GraalVM und GraalVM JavaScript
GraalVM ist eine High-Performance-Laufzeitumgebung, die mehrere Sprachen auf der JVM ausführen kann. Ihr JavaScript-Engine ist modern genug, um aktuelle ECMAScript-Funktionen zu unterstützen. Eine App liefert den Engine mit, übergibt den Skripten eine Reihe von Objekten, mit denen sie arbeiten können, und führt sie aus.
Warum Apps ihn einbetten
- Hot Reload: Ändern Sie ein Skript und sehen Sie die Auswirkungen, ohne neu starten oder neu erstellen zu müssen.
- Eine sichere Oberfläche: Der Host entscheidet genau, welche Objekte und Java-Klassen ein Skript erreichen kann.
- Java-Interoperabilität: Skripte können über die Objekte, die es bereitstellt, in den eigenen Code der Anwendung aufrufen.
Wie es in einem Client auftaucht
Ein Programm, das den Engine einbettet, gibt Skripten normalerweise einen Einstiegspunkt, um sich zu registrieren, und dann eine kleine Reihe von "Proxy"-Objekten, die JavaScript mit den internen Abläufen des Programms verbinden. Benutzer schreiben ein Skript, legen es in einen Skriptordner und der Engine lädt es. So kann ein Client Benutzern ermöglichen, Funktionen in JavaScript hinzuzufügen, anstatt eine Mod zu kompilieren.
FAQ
Nein. Beide führen JavaScript aus, aber die Engine von GraalVM ist dazu gedacht, in eine JVM-Anwendung eingebettet zu werden, während Node.js eine eigenständige Laufzeitumgebung auf Basis von V8 ist.
Meistens nicht. Sie schreiben JavaScript gegen die Objekte, die die Host-App bereitstellt. Kenntnisse darüber, wofür diese Objekte stehen, helfen bei fortgeschrittener Nutzung.
Geschwindigkeit der Iteration. Ein Skript lädt sofort neu, während ein kompilierter Mod neu erstellt und neu gestartet werden muss.