-
- 所有已知实现类:
-
AbstractScriptEngine,NashornScriptEngine
public interface ScriptEngineScriptEngine是基本接口,其方法必须在本规范的每个实现中完全起作用。
这些方法提供基本脚本功能。 写入这个简单接口的应用程序可以在每个实现中进行最少的修改。 它包括执行脚本的方法,以及设置和获取值的方法。
值是两种类型的键/值对。 第一类对包括其密钥在本说明书中保留和定义的那些或由各个实现组成。 具有保留键的对中的值具有指定的含义。
另一种类型的对包括那些创建Java语言绑定的对,这些值通常由脚本中的相应键或它们的装饰形式表示。- 从以下版本开始:
- 1.6
-
-
字段汇总
字段 变量和类型 字段 描述 static StringARGV用于将位置参数数组传递给脚本的命名值的保留键。static StringENGINE指定值的保留键,该值是ScriptEngine实现的名称。static StringENGINE_VERSION标识值的保留键,用于标识ScriptEngine实现的版本。static StringFILENAME指定值的保留键,它是正在执行的文件的名称。static StringLANGUAGE指定值的保留键,它是实现支持的脚本语言的全名。static StringLANGUAGE_VERSION指定值的保留键,用于标识实现支持的脚本语言的版本。static StringNAME标识值的保留键,用于标识脚本语言的短名称。
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 BindingscreateBindings()返回未初始化的Bindings。Objecteval(Reader reader)与eval(String)相同,但脚本源是以Reader提供的Objecteval(Reader reader, Bindings n)与eval(String, Bindings)相同,但脚本源是以Reader提供的。Objecteval(Reader reader, ScriptContext context)与eval(String, ScriptContext)相同,其中脚本源是从Reader读取的。Objecteval(String script)执行指定的脚本。Objecteval(String script, Bindings n)在脚本执行期间,使用Bindings参数作为ENGINE_SCOPEBindingsScriptEngine执行脚本。Objecteval(String script, ScriptContext context)导致立即执行脚本,该脚本的源是作为第一个参数传递的String。Objectget(String key)检索在此引擎状态下设置的值。BindingsgetBindings(int scope)返回命名值的范围。ScriptContextgetContext()返回默认ScriptContext的的ScriptEngine的Bindings,Reader和Writer被用于脚本执行时没有ScriptContext指定。ScriptEngineFactorygetFactory()返回ScriptEngineFactory让全班这里面ScriptEngine所属。voidput(String key, Object value)设置ScriptEngine状态中的键/值对,可以创建用于执行脚本的Java语言绑定,也可以以其他方式使用,具体取决于是否保留键。voidsetBindings(Bindings bindings, int scope)设置脚本使用的命名值范围。voidsetContext(ScriptContext context)设置默认ScriptContext的的ScriptEngine的Bindings,Reader和Writer被用于脚本执行时没有ScriptContext指定。
-
-
-
方法详细信息
-
eval
Object eval(String script, ScriptContext context) throws ScriptException
导致立即执行脚本,该脚本的源是作为第一个参数传递的String。 可以在执行之前重新编译或重新编译脚本。 从先前的执行中留在引擎中的状态,包括变量值和编译过程在执行期间可能是可见的。- 参数
-
script- 脚本引擎要执行的脚本。 -
context- 显示不同范围内的属性集的ScriptContext。 示波器ScriptContext.GLOBAL_SCOPE和ScriptContext.ENGINE_SCOPE的含义在ScriptContext.ENGINE_SCOPE中定义。
ENGINE_SCOPEBindingsScriptContext包含脚本变量与在此脚本执行期间使用的应用程序对象的绑定。 - 结果
- 执行脚本返回的值。
- 异常
-
ScriptException- 如果脚本中发生错误。 ScriptEngines应该为底层脚本实现抛出的已检查异常创建并抛出ScriptException包装器。 -
NullPointerException- 如果任一参数为null。
-
eval
Object eval(Reader reader, ScriptContext context) throws ScriptException
与eval(String, ScriptContext)相同,其中脚本源是从Reader读取的。- 参数
-
reader- 脚本引擎要执行的脚本的源代码。 -
context- 传递给脚本引擎的ScriptContext。 - 结果
- 执行脚本返回的值。
- 异常
-
ScriptException- 如果脚本中发生错误。 ScriptEngines应为底层脚本实现抛出的已检查异常创建并抛出ScriptException包装器。 -
NullPointerException- 如果任一参数为null。
-
eval
Object eval(String script) throws ScriptException
执行指定的脚本。 默认ScriptContext为ScriptEngine使用。- 参数
-
script- 要执行的脚本语言源。 - 结果
- 执行脚本返回的值。
- 异常
-
ScriptException- 如果脚本中发生错误。 ScriptEngines应该为底层脚本实现抛出的已检查异常创建并抛出ScriptException包装器。 -
NullPointerException- 如果参数为null。
-
eval
Object eval(Reader reader) throws ScriptException
与eval(String)相同,但脚本源是以Reader提供的- 参数
-
reader- 脚本的来源。 - 结果
- 脚本返回的值。
- 异常
-
ScriptException- 如果脚本中发生错误。 ScriptEngines应该为底层脚本实现抛出的已检查异常创建并抛出ScriptException包装器。 -
NullPointerException- 如果参数为null。
-
eval
Object eval(String script, Bindings n) throws ScriptException
在脚本执行期间,使用Bindings参数作为ENGINE_SCOPEBindingsScriptEngine执行脚本。 该Reader,Writer和非ENGINE_SCOPEBindings默认的ScriptContext使用。ENGINE_SCOPEBindingsScriptEngine未更改,其映射不会因脚本执行而改变。- 参数
-
script- 脚本的源代码。 -
n- 用于脚本执行的Bindings属性。 - 结果
- 脚本返回的值。
- 异常
-
ScriptException- 如果脚本中发生错误。 ScriptEngines应该为底层脚本实现抛出的已检查异常创建并抛出ScriptException包装器。 -
NullPointerException- 如果任一参数为null。
-
eval
Object eval(Reader reader, Bindings n) throws ScriptException
与eval(String, Bindings)相同,但脚本源是以Reader提供的。- 参数
-
reader- 脚本的来源。 -
n- 属性的Bindings。 - 结果
- 脚本返回的值。
- 异常
-
ScriptException- 如果脚本中发生错误。 ScriptEngines应该为底层脚本实现抛出的已检查异常创建并抛出ScriptException包装器。 -
NullPointerException- 如果任一参数为null。
-
put
void put(String key, Object value)
设置ScriptEngine状态中的键/值对,可以创建用于执行脚本的Java语言绑定,也可以以其他方式使用,具体取决于是否保留键。 必须与getBindings(ScriptContext.ENGINE_SCOPE).put具有相同的效果。- 参数
-
key- 要添加的命名值的名称 -
value- 要添加的命名值的值。 - 异常
-
NullPointerException- 如果key为null。 -
IllegalArgumentException- 如果key为空。
-
get
Object get(String key)
检索在此引擎状态下设置的值。 该值可能是其中之一是使用设置setValue或状态的其他值ScriptEngine,取决于实施。 必须与getBindings(ScriptContext.ENGINE_SCOPE).get具有相同的效果- 参数
-
key- 要返回其值的键 - 结果
- 给定键的值
- 异常
-
NullPointerException- 如果key为null。 -
IllegalArgumentException- 如果key为空。
-
getBindings
Bindings getBindings(int scope)
返回命名值的范围。 可能的范围是:
-
ScriptContext.GLOBAL_SCOPE- 表示全局范围的命名值集。 如果这个ScriptEngine通过创建ScriptEngineManager,那么经理在全球范围内绑定。 如果此null没有关联的全局作用域,则可能是ScriptEngine -
ScriptContext.ENGINE_SCOPE- 表示此ScriptEngine的状态的一组命名值。 这些值通常在脚本中使用关联键作为变量名称可见。 - 的范围内的任何其它值在默认定义
ScriptContext的的ScriptEngine。
返回的Bindings实例必须与getBindings方法返回的实例相同,该方法在ScriptContext的默认值ScriptContext上使用相应参数ScriptEngine。- 参数
-
scope-ScriptContext.ENGINE_SCOPE或ScriptContext.GLOBAL_SCOPE,指定要返回的Bindings。ScriptContext实现可以定义其他范围。 如果默认ScriptContext的的ScriptEngine定义了额外的范围,任何人都可以通过获得相应Bindings。 - 结果
-
具有指定范围的
Bindings。 - 异常
-
IllegalArgumentException- 如果指定的范围无效
-
-
setBindings
void setBindings(Bindings bindings, int scope)
设置脚本使用的命名值范围。 可能的范围是:
-
ScriptContext.ENGINE_SCOPE-指定Bindings替换的引擎范围ScriptEngine。 -
ScriptContext.GLOBAL_SCOPE- 指定的Bindings必须显示为GLOBAL_SCOPE。 - 的范围内的任何其它值在默认定义
ScriptContext的的ScriptEngine。
该方法必须具有作为调用相同的效果setBindings的方法ScriptContext带有的相应值scope上的默认ScriptContext的的ScriptEngine。- 参数
-
bindings- 指定范围的Bindings。 -
scope- 指定的范围。 无论是ScriptContext.ENGINE_SCOPE,ScriptContext.GLOBAL_SCOPE,或范围的其他任何有效的价值。 - 异常
-
IllegalArgumentException- 如果范围无效 -
NullPointerException- 如果绑定为null且范围为ScriptContext.ENGINE_SCOPE
-
-
createBindings
Bindings createBindings()
返回未初始化的Bindings。- 结果
-
A
Bindings可用于替换此ScriptEngine的状态。
-
getContext
ScriptContext getContext()
返回默认ScriptContext的的ScriptEngine的Bindings,Reader和Writer被用于脚本执行时没有ScriptContext指定。- 结果
-
ScriptContext的默认值ScriptEngine。
-
setContext
void setContext(ScriptContext context)
设置默认ScriptContext的的ScriptEngine的Bindings,Reader和Writer被用于脚本执行时没有ScriptContext指定。- 参数
-
context-ScriptContext将替换ScriptContext中的默认值ScriptEngine。 - 异常
-
NullPointerException- 如果context为null。
-
getFactory
ScriptEngineFactory getFactory()
返回ScriptEngineFactory让全班这里面ScriptEngine所属。- 结果
-
ScriptEngineFactory
-
-