/** * 构造 * * @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; }
/** * 构造 * * @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; }
ScriptEngine createScriptEngine(String engine) { ScriptEngine scriptEngine = scriptEngineManager.getEngineByName(engine); if (scriptEngine == null) { scriptEngine = scriptEngineManager.getEngineByExtension(engine); } if (scriptEngine == null) { scriptEngine = scriptEngineManager.getEngineByMimeType(engine); } Preconditions.notNull(scriptEngine, () -> "Script engine not found: " + engine); Bindings bindings = scriptEngine.getBindings(ScriptContext.GLOBAL_SCOPE); bindings.put(Script.BIND_SYSTEM_PROPERTY, systemPropertyAccessor); bindings.put(Script.BIND_SYSTEM_ENVIRONMENT, environmentVariableAccessor); return scriptEngine; }
final ScriptEngine jsEngine = mgr.getEngineByMimeType("application/javascript");
private void writeSvgFile(DAGNode<Component, Dependency> graph, File outFile) throws IOException, LenskitCommandException { StringWriter sw = new StringWriter(); logger.info("writing graph to memory"); GraphDumper.renderGraph(graph, sw); String dotSrc = sw.toString(); logger.debug("setting up script engine"); ScriptEngineManager sem = new ScriptEngineManager(); ScriptEngine engine = sem.getEngineByMimeType("text/javascript"); try (InputStream istr = Graph.class.getResourceAsStream("/META-INF/resources/webjars/viz.js/1.5.1/viz.js"); Reader rdr = new InputStreamReader(istr)) { logger.debug("loading Viz.js"); engine.put(ScriptEngine.FILENAME, "viz.js"); engine.eval(rdr); } catch (ScriptException e) { logger.error("error loading Viz.js", e); throw new LenskitCommandException("Could not load Viz.js", e); } engine.put("dotSrc", dotSrc); engine.put("outFile", outFile); try (InputStream istr = Graph.class.getResourceAsStream("render-graph.js"); Reader rdr = new InputStreamReader(istr)) { logger.info("rendering graph to {}", outFile); engine.put(ScriptEngine.FILENAME, "render-graph.js"); engine.eval(rdr); } catch (ScriptException e) { logger.error("error evaluating render script", e); throw new LenskitCommandException("could not evaluate SVG renderer", e); } }
@Override public ScriptEngine call() throws Exception { return scriptEngineManager.getEngineByMimeType(mimeType); } });
import javax.script.ScriptEngineManager val engine = new ScriptEngineManager().getEngineByMimeType("text/javascript") val result = engine.eval("1 + 1") println(result)
/** * This creates a {@link JReact} instance using the default * {@link ScriptEngine} return for the mime-type 'application/javascript' and * filebased resources. */ public JReact() { this(new ScriptEngineManager().getEngineByMimeType("application/javascript")); }
/** * This creates a {@link JReact} instance using classpath-resources instead of * filebased resources. * * @param useClasspathResources */ public JReact(final boolean useClasspathResources) { this(new ScriptEngineManager().getEngineByMimeType("application/javascript"), useClasspathResources); }
public ScriptEngine getEngineByMimeType(String mimeType) { //TODO this is a hack to deal with context class loader issues ScriptEngine engine=null; for(ScriptEngineManager manager: classLoaders.keySet()){ ClassLoader old=Thread.currentThread().getContextClassLoader(); Thread.currentThread().setContextClassLoader(classLoaders.get(manager)); engine=manager.getEngineByMimeType(mimeType); Thread.currentThread().setContextClassLoader(old); if (engine!=null) break; } return engine; }
@Override @Nonnull public ScriptEngine engineForMimeType(final String mimeType) { checkNotNull(mimeType); log.trace("Resolving engine for mime-type: {}", mimeType); ScriptEngine engine = engineManager.getEngineByMimeType(mimeType); checkState(engine != null, "Missing engine for mime-type: %s", mimeType); log.trace("Engine: {}", engine); return engine; }
ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByMimeType("text/javascript"); try { engine.eval("print('Result: ' + java.lang.Math.sin(0.8))"); double y = ((Number) engine.eval("java.lang.Math.sin(0.8)")).doubleValue(); } catch (ScriptException ex) { Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex); }
public ScriptEngine getEngineByMimeType(String mimeType) { //TODO this is a hack to deal with context class loader issues ScriptEngine engine=null; for(ScriptEngineManager manager: classLoaders.keySet()){ ClassLoader old=Thread.currentThread().getContextClassLoader(); Thread.currentThread().setContextClassLoader(classLoaders.get(manager)); engine=manager.getEngineByMimeType(mimeType); Thread.currentThread().setContextClassLoader(old); if (engine!=null) break; } return engine; }
@Override public ScriptEngine getEngineByMimeType(String mimeType) { // TODO this is a hack to deal with context classloader issues ScriptEngine engine = null; for (ScriptEngineManagerInfo info : scriptEngineManagerInfoList) { Thread currentThread = Thread.currentThread(); ClassLoader old = currentThread.getContextClassLoader(); currentThread.setContextClassLoader(info.classloader); engine = info.scriptEngineManager.getEngineByMimeType(mimeType); currentThread.setContextClassLoader(old); if (engine != null) { break; } } return engine; }
public ScriptEngine getEngineByMimeType(String mimeType) { //TODO this is a hack to deal with context class loader issues ScriptEngine engine=null; for(ScriptEngineManager manager: classLoaders.keySet()){ ClassLoader old=Thread.currentThread().getContextClassLoader(); Thread.currentThread().setContextClassLoader(classLoaders.get(manager)); engine=manager.getEngineByMimeType(mimeType); Thread.currentThread().setContextClassLoader(old); if (engine!=null) break; } return engine; }
@Override public ScriptEngine createScriptEngine(String fileExtension) { ScriptEngine engine = engineManager.getEngineByExtension(fileExtension); if (engine == null) { engine = engineManager.getEngineByName(fileExtension); } if (engine == null) { engine = engineManager.getEngineByMimeType(fileExtension); } return engine; }
@Override public ScriptEngine createScriptEngine(String fileExtension) { ScriptEngine engine = engineManager.getEngineByExtension(fileExtension); if (engine == null) { engine = engineManager.getEngineByName(fileExtension); } if (engine == null) { engine = engineManager.getEngineByMimeType(fileExtension); } return engine; }
@Override public ScriptEngine createScriptEngine(String fileExtension) { ScriptEngine engine = engineManager.getEngineByExtension(fileExtension); if (engine == null) { engine = engineManager.getEngineByName(fileExtension); } if (engine == null) { engine = engineManager.getEngineByMimeType(fileExtension); } return engine; }
@Override public ScriptEngine createScriptEngine(String fileExtension) { ScriptEngine engine = engineManager.getEngineByExtension(fileExtension); if (engine == null) { engine = engineManager.getEngineByName(fileExtension); } if (engine == null) { engine = engineManager.getEngineByMimeType(fileExtension); } return engine; }
public FullSupportScriptEngine(String nameOrExtOrMime) { ScriptEngineManager manager = new ScriptEngineManager(); this.engine = manager.getEngineByName(nameOrExtOrMime); if(null == this.engine){ manager.getEngineByExtension(nameOrExtOrMime); } if(null == this.engine){ manager.getEngineByMimeType(nameOrExtOrMime); } if(null == this.engine){ throw new NullPointerException(StrUtil.format("Script for [{}] not support !", nameOrExtOrMime)); } }