Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Java 8 Nashorn JavaScript Engine: Leistungsboost & neues jjs-Tool

Mit Java 8 wird Nashorn eingeführt – eine deutlich verbesserte JavaScript-Engine, die Rhino ersetzt. Nashorn bietet eine 2- bis 10-fache Leistungssteigerung, da der Code direkt im Speicher kompiliert und der Bytecode an die JVM übergeben wird. Dabei nutzt Nashorn das in Java 7 eingeführte invokedynamics-Feature für mehr Performance.

jjs – Kommandozeilenwerkzeug

Für die Nashorn-Engine liefert Java 8 das neue Kommandozeilen-Tool jjs, um JavaScript-Code direkt in der Konsole auszuführen.

JS-Datei interpretieren

Erstellen Sie die Datei sample.js im Ordner c:\JAVA.

sample.js

print('Hello World!');

Konsolenbefehl:

C:\JAVA>jjs sample.js

Ausgabe:

Hello World!

jjs im interaktiven Modus

Konsolenbefehl:

C:\JAVA>jjs
jjs> print("Hello, World!")
Hello, World!
jjs> quit()
>>

Argumente übergeben

Konsolenbefehl:

C:\JAVA> jjs -- a b c
jjs> print('letters: ' + arguments.join(", "))
letters: a, b, c
jjs>

JavaScript aus Java aufrufen

Mit ScriptEngineManager kann JavaScript-Code in Java aufgerufen und interpretiert werden.

Beispiel

Erstellen Sie das folgende Java-Programm unter C:\JAVA.

Java8Tester.java

Live Demo
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("Fehler bei Script-Ausführung: " + e.getMessage());
        }
        System.out.println(result.toString());
    }
}

Ergebnis prüfen

Kompilieren:

C:\JAVA>javac Java8Tester.java

Ausführen:

C:\JAVA>java Java8Tester

Erwartetes Ergebnis:

Mahesh
12

Java aus JavaScript aufrufen

Das folgende Beispiel zeigt, wie Java-Klassen in JavaScript importiert und genutzt werden.

Erstellen und speichern Sie sample.js unter 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);

Konsolenbefehl:

C:\JAVA>jjs sample.js

Erwartete Ausgabe:

78952000000000000003.20

Java

  1. Java Operatoren meistern: Typen, Syntax und praktische Beispiele
  2. Java Kommentare: Typen, Verwendung und Best Practices
  3. Java Enhanced For-Schleife meistern: Syntax, Beispiele und Best Practices
  4. Java Strings meistern: Erstellung, Methoden und Best Practices
  5. Java-Schnittstellen meistern: Konzepte, Implementierung und Best Practices
  6. Java anonyme innere Klassen meistern: Definition, Syntax und praktische Beispiele
  7. Java Try-With-Resources meistern: Automatisches Ressourcenmanagement erklärt
  8. Java Annotations erklärt: Typen, Platzierung und praktische Beispiele
  9. Java Assertions: Praktischer Leitfaden zur Fehlererkennung und Code-Reliabilität
  10. Java Vector verstehen: Verwendung, Funktionen und Vergleich mit ArrayList