Java by API/javax.script/ScriptEngine

Материал из Java эксперт
Перейти к: навигация, поиск

ScriptEngine: eval(Reader reader)

   <source lang="java">
 

import java.io.FileReader; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; public class Main {

 public static void main(String[] args) {
   ScriptEngineManager manager = new ScriptEngineManager();
   ScriptEngine engine = manager.getEngineByName("js");
   try {
     FileReader reader = new FileReader("yourFile.js");
     engine.eval(reader);
     reader.close();
   } catch (Exception e) {
     e.printStackTrace();
   }
 }

}


 </source>
   
  
 
  



ScriptEngine: eval(String script)

   <source lang="java">
 

import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; public class Main {

 public static void main(String[] args) {
   ScriptEngineManager manager = new ScriptEngineManager();
   ScriptEngine engine = manager.getEngineByName("js");
   String script = "print ("www.jexp.ru")";
   try {
     engine.eval(script);
   } catch (ScriptException e) {
     e.printStackTrace();
   }
 }

}


 </source>
   
  
 
  



ScriptEngine: getBindings(int scope)

   <source lang="java">
 

import javax.script.Bindings; import javax.script.ScriptContext; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; public class Main {

 public static void main(String[] args) throws Exception {
   ScriptEngineManager manager = new ScriptEngineManager();
   ScriptEngine engine = manager.getEngineByName("js");
   engine.put("a", 1);
   engine.put("b", 5);
   Bindings bindings = engine.getBindings(ScriptContext.ENGINE_SCOPE);
   Object a = bindings.get("a");
   Object b = bindings.get("b");
   System.out.println("a = " + a);
   System.out.println("b = " + b);
   Object result = engine.eval("c = a + b;");
   System.out.println("a + b = " + result);
 }

}


 </source>
   
  
 
  



ScriptEngine: get(String key)

   <source lang="java">
 

import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; public class Main {

 public static void main(String args[]) {
   ScriptEngineManager manager = new ScriptEngineManager();
   ScriptEngine engine = manager.getEngineByName("javascript");
   try {
     engine.put("name", "abcde");
     engine.eval("var output = "";for (i = 0; i <= name.length; i++) {"
         + "  output = name.charAt(i)+"-" + output" + "}");
     String name = (String) engine.get("output");
     System.out.println(name);
   } catch (ScriptException e) {
     System.err.println(e);
   }
 }

}


 </source>
   
  
 
  



ScriptEngine: put(String key, Object value)

   <source lang="java">
 

import javax.script.Bindings; import javax.script.ScriptContext; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; public class Main {

 public static void main(String[] args) throws Exception {
   ScriptEngineManager manager = new ScriptEngineManager();
   ScriptEngine engine = manager.getEngineByName("js");
   engine.put("a", 1);
   engine.put("b", 5);
   Bindings bindings = engine.getBindings(ScriptContext.ENGINE_SCOPE);
   Object a = bindings.get("a");
   Object b = bindings.get("b");
   System.out.println("a = " + a);
   System.out.println("b = " + b);
   Object result = engine.eval("c = a + b;");
   System.out.println("a + b = " + result);
 }

}


 </source>