没有 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");// }}
