-
- 所有已知实现类:
-
AbstractScriptEngine,NashornScriptEngine
public interface ScriptEngineScriptEngine是基本接口,其方法必须在本规范的每个实现中都具有完全的功能。
这些方法提供基本的脚本功能。 写入这个简单界面的应用程序预计将在每个实现中进行最少的修改。 它包括执行脚本的方法,以及设置和获取值的方法。
这些值是两种类型的键/值对。 第一种类型的对由在本说明书中保留和定义其密钥的单个实现组成。 与保留键对中的值具有指定的含义。
另一种类型的对由创建Java语言绑定的对组成,这些值通常由脚本中的相应键或其装饰形式表示。- 从以下版本开始:
- 1.6
-
-
Field Summary
Fields Modifier and Type Field 描述 static StringARGV用于将位置参数数组传递给脚本的命名值的保留键。static StringENGINE作为ScriptEngine实现名称的命名值的保留键。static StringENGINE_VERSION用于标识ScriptEngine实现版本的命名值的保留键。static StringFILENAME作为正在执行的文件的名称的命名值的保留键。static StringLANGUAGE作为实现支持的脚本语言的全名的命名值的保留键。static StringLANGUAGE_VERSION用于标识实现支持的脚本语言版本的命名值的保留键。static StringNAME用于标识脚本语言的短名称的命名值的保留键。
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 BindingscreateBindings()返回未初始化的Bindings。Objecteval(Reader reader)相同eval(String)除了将脚本的源被提供为ReaderObjecteval(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_SCOPEBindings的ScriptEngine执行脚本。Objecteval(String script, ScriptContext context)导致立即执行脚本,其脚本是作为第一个参数传递的String。Objectget(String key)检索在此引擎状态下设置的值。BindingsgetBindings(int scope)返回命名值的范围。ScriptContextgetContext()返回默认ScriptContext的的ScriptEngine的Bindings,Reader和Writer被用于脚本执行时没有ScriptContext指定。ScriptEngineFactorygetFactory()为这个ScriptEngine所属的类返回一个ScriptEngineFactory。voidput(String key, Object value)在ScriptEngine的状态下设置一个键/值对,可以创建一个Java语言绑定,以便在执行脚本时使用,或者以其他方式使用,具体取决于该键是否被保留。voidsetBindings(Bindings bindings, int scope)设置脚本使用的命名值的范围。voidsetContext(ScriptContext context)设置当未指定ScriptContext时,其绑定,读取器和作者用于脚本执行的ScriptEngine的默认值ScriptContext。
-
-
-
字段详细信息
-
ARGV
static final String ARGV
用于将位置参数数组传递给脚本的命名值的保留键。- 另请参见:
- Constant Field Values
-
FILENAME
static final String FILENAME
作为正在执行的文件的名称的命名值的保留键。- 另请参见:
- Constant Field Values
-
ENGINE
static final String ENGINE
命名值的保留键是ScriptEngine实现的名称。- 另请参见:
- Constant Field Values
-
ENGINE_VERSION
static final String ENGINE_VERSION
用于标识ScriptEngine实现版本的命名值的保留键。- 另请参见:
- Constant Field Values
-
NAME
static final String NAME
用于标识脚本语言的短名称的命名值的保留键。 该名称用于由ScriptEngineManager来定位ScriptEngine与在一个给定的名称getEngineByName方法。- 另请参见:
- Constant Field Values
-
LANGUAGE
static final String LANGUAGE
作为实现支持的脚本语言的全名的命名值的保留键。- 另请参见:
- Constant Field Values
-
LANGUAGE_VERSION
static final String LANGUAGE_VERSION
用于标识实现支持的脚本语言版本的命名值的保留键。- 另请参见:
- Constant Field Values
-
-
方法详细信息
-
eval
Object eval(String script, ScriptContext context) throws ScriptException
导致立即执行脚本,其脚本是作为第一个参数传递的String。 脚本可能在执行之前被重新编译或重新编译。 在执行过程中,包括变量值和编译过程在内的引擎中留下的状态可能在以前的执行过程中可见。- 参数
-
script- 由脚本引擎执行的脚本。 -
context- AScriptContext不同范围中的属性集。 在本说明书中定义了示波器ScriptContext.GLOBAL_SCOPE和ScriptContext.ENGINE_SCOPE的含义。
ENGINE_SCOPEBindingsScriptContext包含脚本变量与此脚本执行期间要使用的应用程序对象的绑定。 - 结果
- 从执行脚本返回的值。
- 异常
-
ScriptException- 脚本中是否发生错误。 ScriptEngines应该创建并抛出ScriptException包装器,以检查基础脚本实现抛出的检查的异常。 -
NullPointerException- 如果任一参数为空。
-
eval
Object eval(Reader reader, ScriptContext context) throws ScriptException
与eval(String, ScriptContext)相同,其中脚本的来源从Reader读取。- 参数
-
reader- 要由脚本引擎执行的脚本的源。 -
context-ScriptContext传递给脚本引擎。 - 结果
- 从执行脚本返回的值。
- 异常
-
ScriptException- 如果在脚本中发生错误。 ScriptEngines应该创建并抛出ScriptException包装器,用于基础脚本实现抛出的检查的异常。 -
NullPointerException- 如果任一参数为空。
-
eval
Object eval(String script) throws ScriptException
执行指定的脚本。 使用ScriptContext的默认ScriptContextScriptEngine。- 参数
-
script- 要执行的脚本语言源。 - 结果
- 从执行脚本返回的值。
- 异常
-
ScriptException- 脚本中是否出现错误。 ScriptEngines应该创建并抛出ScriptException包装器,用于基础脚本实现抛出的检查的异常。 -
NullPointerException- 如果参数为空。
-
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_SCOPEBindings的的ScriptEngine的脚本执行期间。 该Reader,Writer和非ENGINE_SCOPEBindings默认的ScriptContext使用。ENGINE_SCOPEBindings的ScriptEngine未更改,并且其映射不受脚本执行的影响。- 参数
-
script- 脚本的来源。 -
n- 要用于脚本执行的属性的Bindings。 - 结果
- 脚本返回的值。
- 异常
-
ScriptException- 脚本中是否发生错误。 ScriptEngines应该创建并抛出ScriptException包装器用于基础脚本实现抛出的已检查的异常。 -
NullPointerException- 如果任一参数为空。
-
eval
Object eval(Reader reader, Bindings n) throws ScriptException
与eval(String, Bindings)相同,只是该脚本的来源以Reader形式提供。- 参数
-
reader- 脚本的来源。 -
n-Bindings的属性。 - 结果
- 脚本返回的值。
- 异常
-
ScriptException- 脚本中是否出现错误。 ScriptEngines应创建并抛出ScriptException包装器,以检查基础脚本实现抛出的已检查的异常。 -
NullPointerException- 如果任一参数为空。
-
put
void put(String key, Object value)
在ScriptEngine的状态下设置一个键/值对,可以创建一个Java语言绑定,以便在执行脚本时使用,或者以其他方式使用,具体取决于该键是否被保留。 必须具有与getBindings(ScriptContext.ENGINE_SCOPE).put相同的效果。- 参数
-
key- 要添加的命名值的名称 -
value- 要添加的命名值的值。 - 异常
-
NullPointerException- 如果key为空。 -
IllegalArgumentException- 如果键为空。
-
get
Object get(String key)
检索在此引擎状态下设置的值。 该值可能是其中之一是使用设置setValue或状态的其他值ScriptEngine,取决于实施。 必须具有与getBindings(ScriptContext.ENGINE_SCOPE).get相同的效果- 参数
-
key- 要返回其值的键 - 结果
- 给定键的值
- 异常
-
NullPointerException- 如果key为空。 -
IllegalArgumentException- 如果密钥为空。
-
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的默认ScriptContextScriptEngine定义了其他范围,则可以将其中的任一个传递给相应的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的setBindings方法相同的效果,相应的值为scope,默认ScriptContext为ScriptEngine。- 参数
-
bindings- 指定范围的Bindings。 -
scope- 指定的范围。 无论是ScriptContext.ENGINE_SCOPE,ScriptContext.GLOBAL_SCOPE,或范围的其他任何有效的价值。 - 异常
-
IllegalArgumentException- 范围无效 -
NullPointerException- 如果绑定为空,范围为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的默认ScriptContext的ScriptEngine,当未指定ScriptContext时,其绑定,读取器和作者用于脚本执行。- 参数
-
context- AScriptContext将替代ScriptContext中的默认值ScriptEngine。 - 异常
-
NullPointerException- 如果上下文为空。
-
getFactory
ScriptEngineFactory getFactory()
返回ScriptEngineFactory让全班这里面ScriptEngine所属。- 结果
-
ScriptEngineFactory
-
-