没有 console
https://docs.oracle.com/javase/8/docs/api/javax/script/ScriptEngineManager.html
package demo;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.Bindings;
import javax.script.ScriptContext;
import javax.script.Invocable;
import javax.script.ScriptException;
import javax.script.ScriptEngine;
import java.io.*;
import java.util.*;
import static java.lang.System.*;
public class JavaTest {
public static void main(String[] args) throws Exception {
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
String foo = "4+2";
String regular = "function formatData(data) {return data;}";
try {
System.out.println(engine.eval(foo));
engine.eval(regular);
Map<String, String> map = new HashMap<String,String>();
map.put("a", "b");
if (engine instanceof Invocable) {
Invocable invoke = (Invocable) engine;
Map result = (HashMap) invoke.invokeFunction(
"formatData",
map
);
System.out.println(result);
} else {
System.out.println("error");
}
} catch(ScriptException e) {
System.out.println(e.getMessage());
}
}
// public static void main(String args[]) {
// System.out.println("start");
// String regular="function formatArrayList(column, data) {\n" +
// " var __data = [];\n" +
// " \n" +
// " data.forEach(function (item, index) {\n" +
// " __data.push([]);\n" +
// " column.forEach(function(key) {\n" +
// " __data[index].push(item[key]);\n" +
// " }) \n" +
// " });\n" +
// "\n" +
// " return __data;\n" +
// "}\n" +
// "\n" +
// "function formatJSON(column, data) {\n" +
// " var __data = [];\n" +
// " \n" +
// " data.forEach(function (item, index) {\n" +
// " __data.push({});\n" +
// " column.forEach(function(key) {\n" +
// " __data[index][key] = item[key];\n" +
// " }) \n" +
// " });\n" +
// "\n" +
// " return __data;\n" +
// "}\n" +
// "\n" +
// "function formatData(data) {\n" +
// "\n" +
// " \n" +
// " return {\n" +
// " column: [\"a\", \"b\", \"c\"],\n" +
// " data: formatArrayList([\"a\", \"b\", \"c\"], [data]),\n" +
// " json: formatJSON([\"a\", \"b\", \"c\"], [data])\n" +
// " }\n" +
// "}\n" +
// "\n" +
// "formatData({\n" +
// " a: 1,\n" +
// " b: 1,\n" +
// " c: 1,\n" +
// " c1: [{a:1, b:1, c: 1}]\n" +
// "});";
//
// ScriptEngine engine = new ScriptEngineManager().getEngineByName("JavaScript");
// try {
// engine.eval(regular);
// if (engine instanceof Invocable) {
// Invocable invoke = (Invocable) engine;
// Object result = invoke.invokeFunction(
// "formatData",
// "{\n" +
// " a: 1,\n" +
// " b: 1,\n" +
// " c: 1,\n" +
// " c1: [{a:1, b:1, c: 1}]\n" +
// "}"
// );
// System.out.println(result);
// } else {
// System.out.println("error");
// }
// } catch (Exception e) {
// System.out.println("表达式runtime错误:" + e.getMessage());
// }
// System.out.println("end");
// }
}