Ich bin mit Nashorn über JSR 223 kleine Schnipsel von Benutzern eingegebenen Skript auszuführen:Java Scripting Mit Nashorn (JSR 223) & Pre-Compilation
public Invocable buildInvocable(String script) throws ScriptException {
ScriptEngine engine = new ScriptEngineManager().getEngineByName(ENGINE);
engine.eval(functions);
engine.eval(script);
return (Invocable) engine;
}
Der unterschiedliche Benutzer-Skript ruft JavaScript-Funktionen, die in einem definierten statische, zentrale Bibliothek (in der functions
-Zeichenfolge im obigen Codefragment enthalten).
Jedes Mal, wenn ich eine Invocable
erreichen möchte, die ich von meinem Java aufrufen kann, muss ich ständig den großen Bibliothekscode neu kompilieren.
Gibt es eine Möglichkeit, ein zuvor kompiliertes Stück Code mit neuem Code zu verbinden?
Sind einige Sicherheitsprobleme gibt? z.B. inject malware codes – auntyellow