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");
/** * 构造 * * @param nameOrExtOrMime 脚本名或者脚本语言扩展名或者MineType */ public FullSupportScriptEngine(String nameOrExtOrMime) { final ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName(nameOrExtOrMime); if (null == engine) { engine = manager.getEngineByExtension(nameOrExtOrMime); } if (null == engine) { engine = manager.getEngineByMimeType(nameOrExtOrMime); } if (null == engine) { throw new NullPointerException(StrUtil.format("Script for [{}] not support !", nameOrExtOrMime)); } this.engine = engine; }
protected DataTransformerRegistry() { this.registry = new ConcurrentHashMap<String, DataTransformer>(); this.registry.put("http://www.mvel.org/2.0", new MVELDataTransformer()); ScriptEngineManager manager = new ScriptEngineManager(); List<ScriptEngineFactory> factories = manager.getEngineFactories(); for (ScriptEngineFactory factory : factories) { DataTransformer transformer = new JavaScriptingDataTransformer(factory); for (String name : factory.getNames()) { String key = "http://www.java.com/"+name; registry.put(key, transformer); logger.debug("Registered scripting language {} with instance {}", key, transformer); } } }
@Override public void setBeanClassLoader(ClassLoader classLoader) { ScriptEngineManager scriptEngineManager = this.scriptEngineManager; if (scriptEngineManager == null) { scriptEngineManager = new ScriptEngineManager(classLoader); this.scriptEngineManager = scriptEngineManager; Bindings bindings = this.globalBindings; if (bindings != null) { scriptEngineManager.setBindings(bindings); } } }
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 sem = new ScriptEngineManager(); File scriptFile = options.get("script"); String ext = Files.getFileExtension(scriptFile.getName()); ScriptEngine seng = sem.getEngineByExtension(ext); logger.info("running {} with engine {}", scriptFile, seng); SimpleBindings bindings = new SimpleBindings(); bindings.put("args", options.<List<String>>get("args")); bindings.put("recommender", rec); try (Reader reader = new FileReader(scriptFile)) { seng.eval(reader, bindings); } catch (IOException e) { throw new LenskitCommandException("error loading script file", e);
ScriptEngineManager mgr = new ScriptEngineManager(); engineName = cl.getOptionValue(engine.getOpt()); ScriptEngine engine = mgr.getEngineByName(engineName); if (engine == null) { shellState.printException(new Exception(engineName + " not found")); Bindings b = engine.getBindings(ScriptContext.ENGINE_SCOPE); putConnector(b, shellState.getAccumuloClient()); b.put("client", shellState.getAccumuloClient()); ctx.setBindings(b, ScriptContext.ENGINE_SCOPE); Object[] argArray = argValues.toArray(new Object[argValues.size()]); File f = new File(cl.getOptionValue(out.getOpt())); writer = new FileWriter(f); ctx.setWriter(writer); return 1; engine.eval(inlineScript, ctx); if (invoke) { this.invokeFunctionOrMethod(shellState, engine, cl, argArray);
public static String md2html() throws ScriptException, FileNotFoundException, NoSuchMethodException { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("JavaScript"); File functionscript = new File("public/lib/marked.js"); Reader reader = new FileReader(functionscript); engine.eval(reader); Invocable invocableEngine = (Invocable) engine; Object marked = engine.get("marked"); Object lexer = invocableEngine.invokeMethod(marked, "lexer", "**hello**"); Object result = invocableEngine.invokeMethod(marked, "parser", lexer); return result.toString(); }
String javaScriptExpression = "sayHello(name);"; Reader javaScriptFile = new StringReader( "function sayHello(name) {\n" + " println('Hello, '+name+'!');\n" + "}"); ScriptEngineManager factory = new ScriptEngineManager(); ScriptEngine engine = factory .getEngineByName("JavaScript"); ScriptContext context = engine.getContext(); context.setAttribute("name", "JavaScript", ScriptContext.ENGINE_SCOPE); engine.eval(javaScriptFile); engine.eval(javaScriptExpression);
@Test public void testVariableGet() throws Exception { ScriptEngineManager factory = new ScriptEngineManager(); ScriptEngine engine = factory.getEngineByName("jphp"); engine.eval("<?php $baz = 'test value';"); Assert.assertEquals("test value", engine.get("baz").toString()); }
private boolean runJS() { ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn"); String scriptBefore = "var Do = Java.type('com.sikulix.api.Do');\n" + "var SX = Java.type('com.sikulix.core.SX');\n" + "log = SX.getSXLog(\"SX.JAVASCRIPTRUNNER\");\n"; if (withTrace) { scriptBefore += "log.on(SX.TRACE);\n"; } String scriptText = scriptBefore; scriptText += script; log.trace("%s: running script %s", ScriptType.JAVASCRIPT, scriptName); if (withTrace) { log.p(script); log.p("---------- end of script"); } Object returned = null; try { returned = engine.eval(scriptText); } catch (ScriptException e) { log.trace("%s: error: %s", ScriptType.JAVASCRIPT, e.getMessage()); returnObject = new ReturnObject(false); return false; } log.trace("%s: ending run", ScriptType.JAVASCRIPT); returnObject = new ReturnObject(ScriptType.JAVASCRIPT, returned); return true; }
import java.util.*; import javax.script.*; public class TestBindings { public static void main(String args[]) throws Exception { String script = "function doSomething() {var d = date}"; ScriptEngine engine = new ScriptEngineManager().getEngineByName("JavaScript"); Compilable compilingEngine = (Compilable) engine; CompiledScript cscript = compilingEngine.compile(script); //Bindings bindings = cscript.getEngine().createBindings(); Bindings bindings = engine.getBindings(ScriptContext.ENGINE_SCOPE); for(Map.Entry me : bindings.entrySet()) { System.out.printf("%s: %s\n",me.getKey(),String.valueOf(me.getValue())); } bindings.put("date", new Date()); //cscript.eval(); cscript.eval(bindings); Invocable invocable = (Invocable) cscript.getEngine(); invocable.invokeFunction("doSomething"); } }
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); } } }
@Test public void testBase() { ScriptEngineManager factory = new ScriptEngineManager(); ScriptEngine engine = factory.getEngineByName("jphp"); ScriptEngineFactory f = engine.getFactory(); Assert.assertNotNull(engine); Assert.assertTrue(engine instanceof Compilable); Assert.assertNotNull(f); Assert.assertEquals(Information.NAME, f.getEngineName()); Assert.assertEquals("php", f.getLanguageName()); }
@Test public void testVariableSet() throws Exception { ScriptEngineManager factory = new ScriptEngineManager(); ScriptEngine engine = factory.getEngineByName("jphp"); engine.put("foo", "bar"); Object value = engine.eval("<?php return $foo;"); Assert.assertEquals("bar", value.toString()); }
import javax.script.*; public class ScriptRunner { public static void main(String[] args) throws ScriptException { ScriptEngineManager scriptEngineManager = new ScriptEngineManager(); ScriptEngine nashorn = scriptEngineManager.getEngineByName("nashorn"); String scriptName = args[0]; Bindings bindings = nashorn.createBindings(); bindings.put("scriptFileName", scriptName); nashorn.setBindings(bindings, ScriptContext.ENGINE_SCOPE); nashorn.eval("load('src/main/resources/javascript/' + scriptFileName)"); }
public static void main(String[] args) { ScriptEngineManager manager = new ScriptEngineManager(); for (ScriptEngineFactory factory : manager.getEngineFactories()) { System.out.printf("language: %s, engine: %s%n", factory.getLanguageName(), factory.getEngineName()); } ScriptEngine engine = manager.getEngineByName("SQL"); try { Object result = engine.eval("SELECT 1+2;"); } catch (ScriptException ex) { Logger.getLogger(App.class.getName()).log(Level.SEVERE, null, ex); } }
ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("nashorn"); ScriptContext ctx = new SimpleScriptContext(); ctx.setBindings(engine.createBindings(), ScriptContext.ENGINE_SCOPE); engine.eval("function hello() { return 'Hello!'; }", ctx); engine.setContext(ctx); ((Invocable) engine).invokeFunction("hello");
ScriptEngineManager mgr = new ScriptEngineManager(); ScriptEngine se = mgr.getEngineByName("JavaScript"); try { se.eval("var x;var a,b,c,d;var y = \"wow\";var z = y+'x';"); Bindings bindings = se.getBindings(ScriptContext.ENGINE_SCOPE); System.out.println(bindings.keySet()); } catch (ScriptException e) { //e.printStackTrace(); }