JAVAの動的実行1-javax.script.ScriptEngineManager

1041 ワード

JDK 1.6は、Javax.scriptコードを解析するためのjavax.scriptというパッケージの多くの新しい機能を提供しています.この機能により、プログラム実行時にいくつかのJSコードを動的に実行することができます.
例1:

//        
ScriptEngineManager sem = new ScriptEngineManager();
//       JS   
ScriptEngine engine = sem.getEngineByExtension("js");
try{
    // EVAL
    engine.eval("if(1 > 2){re = true;}else{re = false;}");
}catch(ScriptException ex){
    ex.printStackTrace();
}
//  JS  re
System.out.println((engine.get("re")));

例2:

ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine engine = sem.getEngineByName("JavaScript");
//     
String script = "function max(a, b) "
	+ "{ return (a > b) ? true : false;}";
//  
engine.eval(script);
Invocable inv = (Invocable) engine;
//    
System.out.println(inv.invokeFunction("max", "1", "2"));