Java 8 - Nashorn JavaScript
Mit Java 8, Nashorn, wird eine stark verbesserte Javascript-Engine eingeführt, die das vorhandene Rhino ersetzt. Nashorn bietet eine zwei- bis zehnmal bessere Leistung, da es den Code direkt im Speicher kompiliert und den Bytecode an JVM weitergibt. Nashorn verwendet die in Java 7 eingeführte Funktion zum Aufrufen der Dynamik, um die Leistung zu verbessern.
jjs
Für die Nashorn-Engine führt JAVA 8 ein neues Befehlszeilentool ein: jjs, um Javascript-Codes an der Konsole auszuführen.
Js-Datei interpretieren
Erstellen und speichern Sie die Datei sample.js im Ordner c: \> JAVA.
sample.js
print('Hello World!');
Öffnen Sie die Konsole und verwenden Sie den folgenden Befehl.
C:\JAVA>jjs sample.js
Es wird die folgende Ausgabe erzeugt:
Hello World!
jjs im interaktiven Modus
Öffnen Sie die Konsole und verwenden Sie den folgenden Befehl.
C:\JAVA>jjs
jjs> print("Hello, World!")
Hello, World!
jjs> quit()
>>
Argumente übergeben
Öffnen Sie die Konsole und verwenden Sie den folgenden Befehl.
C:\JAVA> jjs -- a b c
jjs> print('letters: ' +arguments.join(", "))
letters: a, b, c
jjs>
JavaScript von Java aus aufrufen
Mit ScriptEngineManager kann JavaScript-Code in Java aufgerufen und interpretiert werden.
Beispiel
Erstellen Sie das folgende Java-Programm mit einem Editor Ihrer Wahl, z. B. in C: \> JAVA.
Java8Tester.java
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import javax.script.ScriptException;
public class Java8Tester {
public static void main(String args[]) {
ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
ScriptEngine nashorn = scriptEngineManager.getEngineByName("nashorn");
String name = "Mahesh";
Integer result = null;
try {
nashorn.eval("print('" + name + "')");
result = (Integer) nashorn.eval("10 + 2");
} catch(ScriptException e) {
System.out.println("Error executing script: "+ e.getMessage());
}
System.out.println(result.toString());
}
}
Überprüfen Sie das Ergebnis
Kompilieren Sie die Klasse mit javac Compiler wie folgt -
C:\JAVA>javac Java8Tester.java
Führen Sie nun den Java8Tester wie folgt aus:
C:\JAVA>java Java8Tester
Es sollte das folgende Ergebnis liefern -
Mahesh
12
Java über JavaScript aufrufen
Im folgenden Beispiel wird erläutert, wie Sie Java-Klassen in Java-Skripten importieren und verwenden.
Erstellen und speichern sample.js im Ordner c: \> JAVA.
sample.js
var BigDecimal = Java.type('java.math.BigDecimal');
function calculate(amount, percentage) {
var result = new BigDecimal(amount).multiply(new BigDecimal(percentage)).divide(
new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_EVEN);
return result.toPlainString();
}
var result = calculate(568000000000000000023,13.9);
print(result);
Öffnen Sie die Konsole und verwenden Sie den folgenden Befehl.
C:\JAVA>jjs sample.js
Es sollte die folgende Ausgabe erzeugen -
78952000000000000003.20