-
- 所有已知实现类:
-
AbstractScriptEngine
,NashornScriptEngine
public interface ScriptEngine
ScriptEngine
是基本接口,其方法必须在本规范的每个实现中都具有完全的功能。
这些方法提供基本的脚本功能。 写入这个简单界面的应用程序预计将在每个实现中进行最少的修改。 它包括执行脚本的方法,以及设置和获取值的方法。
这些值是两种类型的键/值对。 第一种类型的对由在本说明书中保留和定义其密钥的单个实现组成。 与保留键对中的值具有指定的含义。
另一种类型的对由创建Java语言绑定的对组成,这些值通常由脚本中的相应键或其装饰形式表示。- 从以下版本开始:
- 1.6
-
-
Field Summary
Fields Modifier and Type Field 描述 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
用于标识脚本语言的短名称的命名值的保留键。
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 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()
为这个ScriptEngine
所属的类返回一个ScriptEngineFactory
。void
put(String key, Object value)
在ScriptEngine的状态下设置一个键/值对,可以创建一个Java语言绑定,以便在执行脚本时使用,或者以其他方式使用,具体取决于该键是否被保留。void
setBindings(Bindings bindings, int scope)
设置脚本使用的命名值的范围。void
setContext(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_SCOPE
Bindings
ScriptContext
包含脚本变量与此脚本执行期间要使用的应用程序对象的绑定。 - 结果
- 从执行脚本返回的值。
- 异常
-
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
的默认ScriptContext
ScriptEngine
。- 参数
-
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_SCOPE
Bindings
的的ScriptEngine
的脚本执行期间。 该Reader
,Writer
和非ENGINE_SCOPE
Bindings
默认的ScriptContext
使用。ENGINE_SCOPE
Bindings
的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
的默认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
的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
-
-