javax.script.ScriptEngineManager类的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(10.4k)|赞(0)|评价(0)|浏览(514)

本文整理了Java中javax.script.ScriptEngineManager类的一些代码示例,展示了ScriptEngineManager类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ScriptEngineManager类的具体详情如下:
包路径:javax.script.ScriptEngineManager
类名称:ScriptEngineManager

ScriptEngineManager介绍

暂无

代码示例

代码示例来源:origin: stackoverflow.com

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");

代码示例来源:origin: looly/hutool

/**
 * 构造
 * 
 * @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;
}

代码示例来源:origin: kiegroup/jbpm

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);
    }
  }
}

代码示例来源:origin: spring-projects/spring-framework

@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);
    }
  }
}

代码示例来源:origin: stackoverflow.com

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));
  } 
}

代码示例来源:origin: looly/hutool

/**
 * 获得 {@link ScriptEngine} 实例
 * 
 * @param name 脚本名称
 * @return {@link ScriptEngine} 实例
 */
public static ScriptEngine getScript(String name) {
  return new ScriptEngineManager().getEngineByName(name);
}

代码示例来源:origin: lenskit/lenskit

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);

代码示例来源:origin: apache/accumulo

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);

代码示例来源:origin: stackoverflow.com

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();
}

代码示例来源:origin: stackoverflow.com

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);

代码示例来源:origin: jphp-group/jphp

@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());
}

代码示例来源:origin: RaiMan/SikuliX2

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;
}

代码示例来源:origin: stackoverflow.com

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");
  }
}

代码示例来源:origin: wildfly/wildfly

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);
    }
  }
}

代码示例来源:origin: jphp-group/jphp

@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());
}

代码示例来源:origin: jphp-group/jphp

@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());
}

代码示例来源:origin: stackoverflow.com

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)");
  }

代码示例来源:origin: stackoverflow.com

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);
  }
}

代码示例来源:origin: stackoverflow.com

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");

代码示例来源:origin: stackoverflow.com

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();
}

相关文章