ScriptEngineManager scriptEngineManager = new ScriptEngineManager(); List<ScriptEngineFactory> engineFactories = scriptEngineManager.getEngineFactories(); if (engineFactories.size() == 0) { System. out. println ("This JVM does not support any script engine yet"); return; } System. out. println ("The script engines supported by this JVM are:"); for (ScriptEngineFactory engineFactory : engineFactories) { System. out. println ("engine name:"+engineFactory. getEngineName()); System. out. println (" tNames recognized by ScriptEngineManager:"+engineFactory. getNames()); }
The script engines supported by this JVM are: Engine name: Mozilla Rhino Name recognized by ScriptEngineManager: [js, rhino, JavaScript, javascript, ECMAScript, ecmascript]
The script engines supported by this JVM are: Engine name: Mozilla Rhino Name recognized by ScriptEngineManager: [js, rhino, JavaScript, javascript, ECMAScript, ecmascript] Engine name: jython Name recognized by ScriptEngineManager: [jython, python] Engine name: JEXL Engine Name recognized by ScriptEngineManager: [JEXL, Jexl, jexl, JEXL2, Jexl2, jexl2]
ScriptEngine scriptEngine = new ScriptEngineManager().getEngineByName("javascript"); String exp = "100 * level"; scriptEngine.put("level", 4); Object result = scriptEngine.eval(exp); System.out.println(exp + " = " + result);
ScriptEngine scriptEngine = new ScriptEngineManager().getEngineByName("jexl");
Def increaseHp (attackUnit, defenceUnit, skill, buff, type): # attackUnit skill releaser, defenceUnit skill recruit, skill skill, buff, type 1=value 2=description .... Omitted
def addition(num1,num2): return num1+num2;
ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("python"); String jsFileName="scripts/test. py";//Read the py file FileReader reader = new FileReader(jsFileName); // Execute the specified script engine.eval(reader); if (engine instanceof Invocable) { Invocable invoke = (Invocable) engine; Integer c = (Integer) invoke.invokeFunction("addition", 2, 3); System.out.println("c = " + c); }