一、
package ScriptEngine;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStreamReader;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class EngineTest {
public static void main(String[] args) throws ScriptException, FileNotFoundException, NoSuchMethodException {
ScriptEngineManager xEngineManager=new ScriptEngineManager();
ScriptEngine engine=xEngineManager.getEngineByName("JavaScript");
String arg1="q";
engine.put(arg1,1555);
engine.eval("a=2");
Object object=engine.eval("x=2*a-5+q");
System.out.println(object);
InputStreamReader isr= new InputStreamReader(new FileInputStream(new File("E:\\自学文件\\javaOb\\test\\src\\ScriptEngine\\a.js")));
engine.eval(isr);
Object object2=((Invocable) engine).invokeFunction("addFun", 1,2);
System.out.println(object2);
}
}
a.js
function addFun(a, b){
return a+b;
}
二、编译
package ScriptEngine;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStreamReader;
import javax.script.Compilable;
import javax.script.CompiledScript;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class EngineTest {
public static void main(String[] args) throws ScriptException, FileNotFoundException, NoSuchMethodException {
ScriptEngineManager xEngineManager=new ScriptEngineManager();
ScriptEngine engine=xEngineManager.getEngineByName("JavaScript");
InputStreamReader isrt= new InputStreamReader(new FileInputStream(new File("E:\\自学文件\\javaOb\\test\\src\\ScriptEngine\\b.js")));
CompiledScript script= ((Compilable)engine).compile(isrt);
Object object3= script.eval();
System.out.println(object3);
}
}