1. 脚本语言的特点
* 灵活:脚本语言一般都是动态类型,可以不用声明变量类型而直接使用,也可以在运行期改变类型。
* 便捷:脚本语言是一种解释型语言,不需要编译成二进制代码,也不需要向java一样生成字节码。它的执行是依靠解释器解释,因此在运行期变更代码非常容易,而且不用停止应用。
* 简单(部分):技术门槛低。
2. java6开始正式支持脚本语言,只要符合JSR223规范的脚本语言都可以在java平台上运行,JavaScript是默认支持的。
3. emp
js代码:
function compute(var1, var2){
return var1 + var2 - variable;
}
variable来自上下文
java代码:
public class TempTest {
public static void main(String[] args) throws Exception {
//获得一个js的执行引擎
ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");
//建立上下文变量
Bindings bindings = engine.createBindings();
bindings.put("variable", 1);
//绑定上下文,作用域是当前引擎范围
engine.setBindings(bindings, ScriptContext.ENGINE_SCOPE);
Scanner input = new Scanner(System.in);
while (input.hasNextInt()){
int first = input.nextInt();
int second = input.nextInt();
System.out.println("输入的参数是:"+first+","+second);
engine.eval(new FileReader("E:/demoProject/compute.js"));
//是否调用方法
if (engine instanceof Invocable){
Invocable in = (Invocable) engine;
//执行js中的函数
Double result = (Double) in.invokeFunction("compute", first,second);
System.out.println("运算结果:"+result.intValue());
}
}
}
}