-
- 所有已知实现类:
-
AbstractScriptEngine
,NashornScriptEngine
public interface ScriptEngine
ScriptEngine
是基本接口,其方法必须在本规范的每个实现中完全起作用。
这些方法提供基本脚本功能。 写入这个简单接口的应用程序可以在每个实现中进行最少的修改。 它包括执行脚本的方法,以及设置和获取值的方法。
值是两种类型的键/值对。 第一类对包括其密钥在本说明书中保留和定义的那些或由各个实现组成。 具有保留键的对中的值具有指定的含义。
另一种类型的对包括那些创建Java语言绑定的对,这些值通常由脚本中的相应键或它们的装饰形式表示。- 从以下版本开始:
- 1.6
-
-
字段汇总
字段 变量和类型 字段 描述 static String
ARGV
用于将位置参数数组传递给脚本的命名值的保留键。static String
ENGINE
指定值的保留键,该值是ScriptEngine
实现的名称。static String
ENGINE_VERSION
标识值的保留键,用于标识ScriptEngine
实现的版本。static String
FILENAME
指定值的保留键,它是正在执行的文件的名称。static String
LANGUAGE
指定值的保留键,它是实现支持的脚本语言的全名。static String
LANGUAGE_VERSION
指定值的保留键,用于标识实现支持的脚本语言的版本。static String
NAME
标识值的保留键,用于标识脚本语言的短名称。
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 Bindings
createBindings()
返回未初始化的Bindings
。Object
eval(Reader reader)
与eval(String)
相同,但脚本源是以Reader
提供的Object
eval(Reader reader, Bindings n)
与eval(String, Bindings)
相同,但脚本源是以Reader
提供的。Object
eval(Reader reader, ScriptContext context)
与eval(String, ScriptContext)
相同,其中脚本源是从Reader
读取的。Object
eval(String script)
执行指定的脚本。Object
eval(String script, Bindings n)
在脚本执行期间,使用Bindings
参数作为ENGINE_SCOPE
Bindings
ScriptEngine
执行脚本。Object
eval(String script, ScriptContext context)
导致立即执行脚本,该脚本的源是作为第一个参数传递的String。Object
get(String key)
检索在此引擎状态下设置的值。Bindings
getBindings(int scope)
返回命名值的范围。ScriptContext
getContext()
返回默认ScriptContext
的的ScriptEngine
的Bindings,Reader和Writer被用于脚本执行时没有ScriptContext
指定。ScriptEngineFactory
getFactory()
返回ScriptEngineFactory
让全班这里面ScriptEngine
所属。void
put(String key, Object value)
设置ScriptEngine状态中的键/值对,可以创建用于执行脚本的Java语言绑定,也可以以其他方式使用,具体取决于是否保留键。void
setBindings(Bindings bindings, int scope)
设置脚本使用的命名值范围。void
setContext(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_SCOPE
Bindings
ScriptContext
包含脚本变量与在此脚本执行期间使用的应用程序对象的绑定。 - 结果
- 执行脚本返回的值。
- 异常
-
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_SCOPE
Bindings
ScriptEngine
执行脚本。 该Reader
,Writer
和非ENGINE_SCOPE
Bindings
默认的ScriptContext
使用。ENGINE_SCOPE
Bindings
ScriptEngine
未更改,其映射不会因脚本执行而改变。- 参数
-
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
-
-