螺 丝 钉 阅读(161) 评论(0)

 

基本API 说明

    jvm上可以执行其他的语言。执行其他的语言,都需要一个脚本引擎。JDK 中提供了相关的API。

    这一套API适合于可以在JVM上运行的任何语言。

 

 

 

·ScriptEngine 是一个脚本执行引擎,用它来执行指定的脚本。根据eval的几个重写的形式,可以知道,可以用于执行字符串形式的脚本,也可以从文件流里读取脚本然后执行。

·Bindings 其实就是java.util.Map的实现类。在Script API中,bindings用于存储脚本执行是可以使用的数据。

·ScriptContext 脚本执行上下文,通过上面的类图就可以看出Context分为两种:globalScope和engineScope, 使用ScriptEngine执行脚本时,会用到一些数据,这些数据可能存储于globalScope也可以存储于engineScope中。globalScope中的数据可以让JVM上运行的所有的ScriptEngine使用,engineScope适用于某个ScriptEngine。

·ScriptEngineFactory是一个ScriptEngine工厂,是用于创建ScriptEngine对象的,通常情况下我们并不会直接使用它,而是使用ScriptEngineManager。

 

·ScriptEngineManager 管理了所有的Script API。使用时一般使用它来创建ScriptEngine对象(有三种方式)。并且也维护了globalScope。

 

 

 

函数调用API

Invocable 接口

 

 

可调用的,接口提供了四个方法,

invokeFunction,用于调用全局对象下面的方法。

invokedMethod用于调用Script中某个对象的方法。

 

下面的例子是调用Javascript全局函数:

接下来的例子是调用JavaScript中自定义对象的方法:

 

对于java接口,我们也可以使用Script语言写出Java接口的实现类。

 这个很少用,就不说了。