it-swarm.com.de

Wie kann ich JavaScript in Java verwenden?

Ich wollte ein kleines Produkt erstellen, in dem ich eine Art Funktion angeben wollte, mit der Benutzer Skriptsprachen wie JavaScript schreiben können.

Und auch von JavaScript in der Lage, Objekte zu erstellen und Methoden aufzurufen.

Gibt es dafür einen Rahmen?

38
Dungeon Hunter

Rhino ist was Sie suchen.

Rhino ist eine Open-Source-Implementierung von JavaScript, die vollständig .__ geschrieben wurde. in Java. Es ist normalerweise in Java-Anwendungen eingebettet, um .__ bereitzustellen. Skripting für Endbenutzer.

Update: Now Nashorn , eine leistungsfähigere JavaScript Engine für Java, ist mit jdk8 verfügbar. 

35
kunal

Java enthält ein Erweiterungspaket für Skriptsprachen ab Version 6.

In der Rhino-Projektdokumentation zum Einbetten eines JavaScript-Interpreters in Java } siehe _.

[Bearbeiten]

Hier ein kleines Beispiel, wie Sie Java-Objekte für Ihr interpretiertes Skript bereitstellen können:

public class JS {
  public static void main(String args[]) throws Exception {
    ScriptEngine js = new ScriptEngineManager().getEngineByName("javascript");
    Bindings bindings = js.getBindings(ScriptContext.ENGINE_SCOPE);
    bindings.put("stdout", System.out);
    js.eval("stdout.println(Math.cos(Math.PI));");
    // Prints "-1.0" to the standard output stream.
  }
}
15
maerics

Sie können ScriptEngine verwenden, Beispiel: 


public class Main {
    public static void main(String[] args) {
        StringBuffer javascript = null;
        ScriptEngine runtime = null;

        try {
            runtime = new ScriptEngineManager().getEngineByName("javascript");
            javascript = new StringBuffer();

            javascript.append("1 + 1");

            double result = (Double) runtime.eval(javascript.toString());

            System.out.println("Result: " + result);
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }
}
11
Eder

Schauen Sie sich Rhino an: http://www.mozilla.org/rhino/

6
derFunk

Oracle Nashorn bietet Interoperabilität zwischen der Java- und JavaScript-Welt. Das bedeutet, dass Ihr Java-Code JavaScript-Code aufrufen kann und umgekehrt .. /. Grundlegendes Tutorial zum Verständnis, wie Programme mit Oracle Nashorn geschrieben werden.

6
pardeep131085

Die in JDK 6 enthaltene Rhino-JavaScript-Engine wird durch eine neue Engine namens Nashorn für JDK 8 ersetzt.

Der Oracle-Blog für Nashorn enthält sowohl Neuigkeiten als auch Quellcode-Beispiele.

4

Ich wollte nur etwas Neues für diese Frage beantworten - J2V8.

Der Autor Ian Bull sagt: "Rhino und Nashorn sind zwei gängige JavaScript-Laufzeiten, die jedoch in einigen Bereichen nicht unseren Anforderungen entsprachen:

Keine Unterstützung für "Primitives". Alle Interaktionen mit diesen Plattformen erfordern Wrapper-Klassen wie Integer, Double oder Boolean .. _. Nashorn wird auf Android nicht unterstützt. Rhino-Compiler-Optimierungen werden auf Android nicht unterstützt. Keine Weisen unterstützen Remote-Debugging unter Android. " "

Hocheffiziente Java- und JavaScript-Integration

Github-Link

0
Ashok M A