package me.test.jdk.javax.script; import javax.script.ScriptEngine; import javax.script.ScriptEngineFactory; import javax.script.ScriptEngineManager; import javax.script.ScriptException; import java.util.HashMap; import java.util.List; import java.util.Map; public class Main { @SuppressWarnings("unchecked") public static void main(String[] args) throws ScriptException { ScriptEngineManager manager = new ScriptEngineManager(); List<ScriptEngineFactory> factories = manager.getEngineFactories(); for (ScriptEngineFactory f : factories) { System.out.println("egine name:" + f.getEngineName()); System.out.println("engine version:" + f.getEngineVersion()); System.out.println("language name:" + f.getLanguageName()); System.out.println("language version:" + f.getLanguageVersion()); System.out.println("names:" + f.getNames()); System.out.println("mime:" + f.getMimeTypes()); System.out.println("extension:" + f.getExtensions()); System.out.println("-----------------------------------------------"); } ScriptEngine engine = manager.getEngineByName("js"); engine.put("a", 4); engine.put("b", 6); Object maxNum = engine.eval("function max_num(a,b){return (a>b)?a:b;}max_num(a,b);"); System.out.println("max_num:" + maxNum + ", (class = " + maxNum.getClass() + ")"); @SuppressWarnings("rawtypes") Map m = new HashMap(); m.put("c", 10); engine.put("m", m); engine.eval("var x= max_num(a,m.get('c'));"); System.out.println("max_num:" + engine.get("x")); } }