import javax.script.ScriptEngineManager; import javax.script.ScriptEngine; public class Test { public static void main(String[] args) throws Exception{ ScriptEngineManager mgr = new ScriptEngineManager(); ScriptEngine engine = mgr.getEngineByName("JavaScript"); String foo = "40+2"; System.out.println(engine.eval(foo)); } }
/** * 获得 {@link ScriptEngine} 实例 * * @param name 脚本名称 * @return {@link ScriptEngine} 实例 */ public static ScriptEngine getScript(String name) { return new ScriptEngineManager().getEngineByName(name); }
ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("js"); Object result = engine.eval("4*5");
public static void main(String[] args) throws ScriptException, NoSuchMethodException { NashornScriptEngine engine = (NashornScriptEngine) new ScriptEngineManager().getEngineByName("nashorn"); engine.eval("load('java8-nashorn/src/main/resources/nashorn9.js')"); long t0 = System.nanoTime(); double result = 0; for (int i = 0; i < 1000; i++) { double num = (double) engine.invokeFunction("testPerf"); result += num; } System.out.println(result > 0); long took = System.nanoTime() - t0; System.out.format("Elapsed time: %d ms", TimeUnit.NANOSECONDS.toMillis(took)); } }
public static void main(String[] args) throws ScriptException { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine nashorn = manager.getEngineByName("nashorn"); Integer eval = (Integer) nashorn.eval("10 + 20"); System.out.println(eval); } }
private static int calc(String exp) { try { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("JavaScript"); Integer catch1 = (Integer)engine.eval(exp); return catch1.intValue(); }catch(Exception e) { e.printStackTrace(); return 0; } }
/** * 获得 {@link ScriptEngine} 实例 * * @param name 脚本名称 * @return {@link ScriptEngine} 实例 */ public static ScriptEngine getScript(String name) { return new ScriptEngineManager().getEngineByName(name); }
import javax.script.*; import java.util.*; public class Main { public static void main(String[] args) throws Exception { ScriptEngine engine = new ScriptEngineManager().getEngineByName("JavaScript"); Map<String, Object> vars = new HashMap<String, Object>(); vars.put("x", 2); vars.put("y", 1); vars.put("z", 3); System.out.println("result = "+engine.eval("x + y + z", new SimpleBindings(vars))); } }
ScriptEngineManager factory = new ScriptEngineManager(); ScriptEngine engine = factory.getEngineByName("JavaScript"); engine.eval("print('Hello, World')");
/** * create ScriptEngine instance by type from url parameters, then cache it */ private ScriptEngine getEngine(URL url) { String type = url.getParameter(Constants.TYPE_KEY, Constants.DEFAULT_SCRIPT_TYPE_KEY); return engines.computeIfAbsent(type, t -> { ScriptEngine scriptEngine = new ScriptEngineManager().getEngineByName(type); if (scriptEngine == null) { throw new IllegalStateException("unsupported route engine type: " + type); } return scriptEngine; }); }
import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; public class Test { public static void main(String[] args) throws Exception { ScriptEngineManager factory = new ScriptEngineManager(); ScriptEngine engine = factory.getEngineByName("JavaScript"); engine.eval("value = 10"); Boolean greaterThan5 = (Boolean) engine.eval("value > 5"); Boolean lessThan5 = (Boolean) engine.eval("value < 5"); System.out.println("10 > 5? " + greaterThan5); // true System.out.println("10 < 5? " + lessThan5); // false } }
protected Map<String,String> parseJsonResponse(String json) throws ScriptException { synchronized (scriptEngineLock) { if (scriptEngine == null) { scriptEngine = new ScriptEngineManager().getEngineByName("JavaScript"); if (scriptEngine == null) { throw new RuntimeException("Failed to load JavaScript script engine"); } } Bindings bindings = new SimpleBindings(); bindings.put("json", json); return (Map<String, String>)scriptEngine.eval(JSON_RESPONSE_PARSING_SCRIPT, bindings); } } }
/** * create ScriptEngine instance by type from url parameters, then cache it */ private ScriptEngine getEngine(URL url) { String type = url.getParameter(Constants.TYPE_KEY, Constants.DEFAULT_SCRIPT_TYPE_KEY); return engines.computeIfAbsent(type, t -> { ScriptEngine scriptEngine = new ScriptEngineManager().getEngineByName(type); if (scriptEngine == null) { throw new IllegalStateException("unsupported route engine type: " + type); } return scriptEngine; }); }
public static void main(String[] args) throws ScriptException { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine nashorn = manager.getEngineByName("nashorn"); Bindings bindings = new SimpleBindings(Stream.of( new SimpleEntry<>("a", 10), new SimpleEntry<>("b", 20)) .collect(toMap(SimpleEntry::getKey, SimpleEntry::getValue))); Double eval = (Double) nashorn.eval("a + b", bindings); System.out.println(eval); } }
@SuppressWarnings("unchecked") public static <T> T eval(String js, Map<String, ?> bindings) throws ScriptException { ScriptEngineManager factory = new ScriptEngineManager(); ScriptEngine engine = factory.getEngineByName("JavaScript"); if (bindings != null) { Map<String, Object> map = U.cast(bindings); return (T) engine.eval(js, new SimpleBindings(map)); } else { return (T) engine.eval(js); } }
/** * Provides a convenient shorthand for accessing a Scripting Engine with name <code>languageShortName</code> * using a newly created <code>ScriptEngineManager</code> instance. * * @param self Placeholder variable used by Groovy categories; ignored for default static methods * @param languageShortName The short name of the scripting engine of interest * @return the ScriptEngine corresponding to the supplied short name or null if no engine was found * @since 1.8.0 */ public static ScriptEngine $static_propertyMissing(ScriptEngineManager self, String languageShortName) { ScriptEngineManager manager = new ScriptEngineManager(); return manager.getEngineByName(languageShortName); }
import java.util.function.Function; import javax.script.*; public class ScriptFunction { public static void main(String[] args) throws Exception { ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn"); @SuppressWarnings("unchecked") Function<Object,Object> f = (Function<Object,Object>)engine.eval( String.format("new java.util.function.Function(%s)", args[0])); for (int i = 1; i < args.length; i++) { System.out.println(f.apply(args[i])); } } }
ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("JavaScript"); // read script file engine.eval(Files.newBufferedReader(Paths.get("C:/Scripts/Jsfunctions.js"), StandardCharsets.UTF_8)); Invocable inv = (Invocable) engine; // call function from script file inv.invokeFunction("yourFunction", "param");
public JavaScriptEngine() { super(new ScriptEngineManager().getEngineByName("javascript")); }
import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; public static void main(String[] args) throws Exception { ScriptEngineManager mgr = new ScriptEngineManager(); ScriptEngine engine = mgr.getEngineByName("JavaScript"); Object result = engine.eval("my-java-script-code") System.out.println("Result returned by Javascript is: " + result); }