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");
package org.rekdev; import java.util.*; import javax.script.*; public class JavaScriptWTF { public static void main( String[] args ) { ScriptEngineManager mgr = new ScriptEngineManager(); List<ScriptEngineFactory> factories = mgr.getEngineFactories(); for ( ScriptEngineFactory factory : factories ) { System.out.println( String.format( "engineName: %s, THREADING: %s", factory.getEngineName(), factory.getParameter( "THREADING" ) ) ); } } }
if(Platform.isMac()) { final String script="tell application \"System Events\"\n" + "\tname of application processes whose frontmost is tru\n" + "end"; ScriptEngine appleScript=new ScriptEngineManager().getEngineByName("AppleScript"); String result=(String)appleScript.eval(script); System.out.println(result); }
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 IOException, ScriptException { File scriptFile = new File(args[0]); ScriptEngineManager sem = new ScriptEngineManager(); String ext = Files.getFileExtension(scriptFile.getName()); ScriptEngine engine = sem.getEngineByExtension(ext); engine.put("cmdArgs", Arrays.asList(args).subList(1, args.length)); try (Reader reader = Files.newReader(scriptFile, Charsets.UTF_8)) { engine.eval(reader); } } }
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); } }
ScriptEngineManager mgr = new ScriptEngineManager(); List<ScriptEngineFactory> factories = mgr.getEngineFactories(); System.out.println("ScriptEngineFactory Info");
private static final String FUNCTIONS = "function() {" + " return \"Hello\";" + "}"; public static void main(String... args) throws Exception { ScriptEngine engine = new ScriptEngineManager().getEngineByMimeType("text/javascript"); // Compile common functions once CompiledScript compiled = ((Compilable) engine).compile(FUNCTIONS); Object sayHello = compiled.eval(); // Load users' script each time SimpleBindings global = new SimpleBindings(); global.put("sayHello", sayHello); String script = "sayHello()"; System.out.println(engine.eval(script, global)); }
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))); } }
import javax.script.ScriptEngineFactory; import javax.script.ScriptEngineManager; public class ScriptEngineTest { public static void main(String[] args) { final ScriptEngineManager mgr = new ScriptEngineManager(); for(ScriptEngineFactory fac: mgr.getEngineFactories()) { System.out.println(String.format("%s (%s), %s (%s), %s", fac.getEngineName(), fac.getEngineVersion(), fac.getLanguageName(), fac.getLanguageVersion(), fac.getParameter("THREADING"))); } } }
ScriptEngineManager factory = new ScriptEngineManager(); ScriptEngine engine = factory.getEngineByName("JavaScript"); engine.eval("print('Hello, World')");
/** * 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); }
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); } }
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; }); }
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 } }