Übersetzung ins Deutsche

Java - Nashorn JavaScript Engine

Hallo dort, aufstrebende Programmierer! Ich bin begeistert, Ihr Guide auf dieser aufregenden Reise in die Welt von Java und dem Nashorn JavaScript Engine zu sein. Als jemand, der seit über einem Jahrzehnt Informatik lehrt, kann ich Ihnen versichern, dass dies eine unterhaltsame und aufklärerische Erfahrung werden wird. Also, lasst uns einsteigen!

Java - Nashorn JavaScript

Was ist der Nashorn JavaScript Engine?

Nashorn (ausgesprochen "nass-horn") ist ein leichtgewichtiges, hochleistungsfaehiges JavaScript-Engine, das mit Java 8 eingeführt wurde. Es ist wie eine Brücke zwischen Java und JavaScript, die es Ihnen ermöglicht, JavaScript-Code innerhalb einer Java-Anwendung auszuführen. Cool, nicht wahr?

Ein kleiner Abriss zur Geschichte

In meinen frühen Tagen des Lehrens mussten wir separate Umgebungen für Java und JavaScript verwenden. Es war, als ob man einen Erdnussbutter-und-Gemüsebrot-Sandwich mit zwei separaten Tellern machen wollte! Nashorn hat das alles geändert, indem es diese beiden mächtigen Sprachen in einer köstlichen Kombination zusammengebracht.

JavaScript über die Kommandozeilen-Tools ausführen

Lassen Sie uns mit etwas Einfachem beginnen. Nashorn kommt mit einem Kommandozeilen-Tool namens jjs, das es Ihnen ermöglicht, JavaScript direkt von Ihrem Terminal auszuführen.

Beispiel 1: Hallo, Nashorn!

Öffnen Sie Ihre Eingabeaufforderung und geben Sie ein:

jjs
print("Hallo, Nashorn!");

Sie sollten "Hallo, Nashorn!" auf Ihrem Bildschirm sehen. Glückwunsch! Sie haben gerade Ihren ersten JavaScript-Code mit Nashorn ausgeführt.

JavaScript direkt in der Eingabeaufforderung ausführen

Sie können auch JavaScript-Dateien direkt von der Kommandozeile ausführen.

Beispiel 2: Eine JavaScript-Datei ausführen

  1. Erstellen Sie eine Datei namens greet.js mit folgendem Inhalt:
var name = "Alice";
print("Hallo, " + name + "!");
  1. Führen Sie sie mit jjs aus:
jjs greet.js

Sie sollten "Hallo, Alice!" auf Ihrem Bildschirm sehen.

Argumente an jjs übergeben

Nashorn ermöglicht es Ihnen, Argumente an Ihren JavaScript-Code zu übergeben, genau wie bei Java.

Beispiel 3: Argumente übergeben

Erstellen Sie eine Datei namens greet_with_args.js:

var name = $ARG[0];
print("Hallo, " + name + "!");

Führen Sie sie mit einem Argument aus:

jjs greet_with_args.js -- Bob

Sie sollten "Hallo, Bob!" sehen.

JavaScript aus Java aufrufen

Jetzt kommen wir zum wirklich spannenden Teil - JavaScript aus Ihrer Java-Code aufzurufen!

Beispiel 4: JavaScript in Java auswerten

import javax.script.*;

public class JavaScriptInJava {
    public static void main(String[] args) throws ScriptException {
        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine engine = manager.getEngineByName("nashorn");

        engine.eval("print('Hallo von JavaScript!');");
    }
}

Wenn Sie dieses Java-Programm ausführen, wird es "Hallo von JavaScript!" mit der Nashorn-Engine ausgeben.

Java aus JavaScript aufrufen

Die wahre Stärke von Nashorn besteht darin, dass Sie Java-Klassen und -Methoden innerhalb von JavaScript-Code verwenden können.

Beispiel 5: Verwendung von Java-Klassen in JavaScript

import javax.script.*;

public class JavaInJavaScript {
    public static void main(String[] args) throws ScriptException {
        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine engine = manager.getEngineByName("nashorn");

        engine.eval("var ArrayList = Java.type('java.util.ArrayList');" +
                    "var list = new ArrayList();" +
                    "list.add('Hallo');" +
                    "list.add('Welt');" +
                    "print(list);");
    }
}

Dieser Code erstellt eine Java-ArrayList, fügt Elemente hinzu und gibt sie aus - alles aus JavaScript!

Fortgeschrittene Funktionen

Nashorn bietet viele fortgeschrittene Funktionen, die es zu einer leistungsfähigen Werkzeug für Java-Entwickler machen.

Beispiel 6: Verwendung von Java 8 Lambda-Ausdrücken

import javax.script.*;

public class LambdaInNashorn {
    public static void main(String[] args) throws ScriptException {
        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine engine = manager.getEngineByName("nashorn");

        engine.eval("var list = [1, 2, 3, 4, 5];" +
                    "list.forEach(function(num) { print(num * 2); });");
    }
}

Dieses Beispiel zeigt, wie Sie Java 8 Lambda-Ausdrücke innerhalb von JavaScript-Code, der auf Nashorn läuft, verwenden können.

Methodentabelle

Hier ist eine Tabelle einiger wichtiger Methoden, die Sie mit Nashorn verwenden können:

Methode Beschreibung
ScriptEngineManager.getEngineByName("nashorn") Holen Sie sich den Nashorn-Skript-Engine
ScriptEngine.eval(String script) Evaluieren Sie ein JavaScript-Skript
ScriptEngine.put(String key, Object value) Setzen Sie eine Variable im Skript-Engine
ScriptEngine.get(String key) Holen Sie sich eine Variable vom Skript-Engine
Invocable.invokeFunction(String name, Object... args) Rufen Sie eine JavaScript-Funktion auf

Schlussfolgerung

Und so ist es, Freunde! Wir haben nur die Oberfläche dessen berührt, was Nashorn kann, aber ich hoffe, diese Einführung hat Ihr Interesse geweckt. Denken Sie daran, dass der Schlüssel zur Meisterschaft in der Programmierung Praxis ist, also zögern Sie nicht, diese Beispiele zu experimentieren und Ihre eigenen zu erstellen.

Wie ich meinen Schülern immer sage, Programmieren ist wie das Fahrradfahren zu lernen - es mag am Anfang schrecklich erscheinen, aber mit der Praxis werden Sie bald wie der Wind fahren. Und wer weiß? Vielleicht lehren Sie eines Tages andere über die Wunder von Nashorn!

Fortsetzen Sie das Coden, das Lernen und vor allem haben Sie Spaß! Bis zum nächsten Mal, das ist Ihr freundlicher Nachbarlehrer für Informatik. Frohes Coden!

Credits: Image by storyset