概述
软件包
类
使用
树
已过时
索引
帮助
JavaTM 2 Platform
Standard Ed. 6
上一个类
下一个类
框架
无框架
摘要: 嵌套 | 字段 | 构造方法 | 方法
详细信息: 字段 | 构造方法 | 方法
javax.script
接口 ScriptEngine
所有已知实现类:
AbstractScriptEngine
public interface ScriptEngine
ScriptEngine 是基础接口,该接口的方法在此规范的每个实现中都必须具有完整的功能。
这些方法提供基本的脚本功能。为这个简单接口编写的应用程序应该对每个实现稍做修改就能够运行。这包括执行脚本的方法,以及设置和获取值的方法。
这些值是两种类型的键/值对。组成第一种类型的键/值对中的键是此规范或个别实现中保留和定义的键。包含保留键的键/值对中的值具有指定的含义。
另一种类型由那些创建 Java 语言 Bindings 的键/值对组成,值通常通过相应键或其装饰的形式用脚本表示。
从以下版本开始:
1.6
字段摘要
static String
ARGV
指定值的保留键,它将一个位置参数数组传递给某一脚本。
static String
ENGINE
指定值的保留键,它是 ScriptEngine 实现的名称。
static String
ENGINE_VERSION
指定值的保留键,它标识 ScriptEngine 实现的版本。
static String
FILENAME
指定值的保留键,它是将被执行的文件的名称。
static String
LANGUAGE
指定值的保留键,它是受实现支持的 Scripting Language 的完全名称。
static String
LANGUAGE_VERSION
指定值的保留键,它标识受实现支持的脚本语言的版本。
static String
NAME
指定值的保留键,它标识脚本语言的短名称。
方法摘要
Bindings
createBindings()
返回一个未初始化的 Bindings。
Object
eval(Reader reader)
除了脚本的源是以 Reader 形式提供的外,与 eval(String) 相同。
Object
eval(Reader reader,
Bindings n)
除了脚本的源是以 Reader 形式提供的外,与 eval(String, Bindings) 相同。
Object
eval(Reader reader,
ScriptContext context)
与 eval(String, ScriptContext) 相同,其中脚本的源是从 Reader 读取的。
Object
eval(String script)
执行指定的脚本。
Object
eval(String script,
Bindings n)
执行脚本,脚本执行期间使用 Bindings 参数作为 ScriptEngine 的 ENGINE_SCOPE Bindings。
Object
eval(String script,
ScriptContext context)
立即执行脚本,该脚本的源是作为第一个参数传递的 String。
Object
get(String key)
获取在此引擎的状态中设置的值。
Bindings
getBindings(int scope)
返回指定值的范围。
ScriptContext
getContext()
返回 ScriptEngine 的默认 ScriptContext,在没有指定 ScriptContext 时,该 ScriptEngine 的 Bindings、Reader 和 Writer 被用于脚本执行。
ScriptEngineFactory
getFactory()
返回此 ScriptEngine 所属的类的 ScriptEngineFactory。
void
put(String key,
Object value)
设置 ScriptEngine 的状态中的键/值对,它创建一个将在脚本执行中使用或者以其他方式使用的 Java Language Binding,具体取决于该键是否被保留。
void
setBindings(Bindings bindings,
int scope)
设置将由脚本使用的指定值的范围。
void
setContext(ScriptContext context)
设置 ScriptEngine 的默认 ScriptContext,在没有指定 ScriptContext 时,该 ScriptEngine 的 Bindings、Reader 和 Writer 被用于脚本执行。
字段详细信息
ARGV
static final String ARGV
指定值的保留键,它将一个位置参数数组传递给某一脚本。
另请参见:
常量字段值
FILENAME
static final String FILENAME
指定值的保留键,它是将被执行的文件的名称。
另请参见:
常量字段值
ENGINE
static final String ENGINE
指定值的保留键,它是 ScriptEngine 实现的名称。
另请参见:
常量字段值
ENGINE_VERSION
static final String ENGINE_VERSION
指定值的保留键,它标识 ScriptEngine 实现的版本。
另请参见:
常量字段值
NAME
static final String NAME
指定值的保留键,它标识脚本语言的短名称。ScriptEngineManager 使用该名称查找具有 getEngineByName 方法中的给定名称的 ScriptEngine。
另请参见:
常量字段值
LANGUAGE
static final String LANGUAGE
指定值的保留键,它是受实现支持的 Scripting Language 的完全名称。
另请参见:
常量字段值
LANGUAGE_VERSION
static final String LANGUAGE_VERSION
指定值的保留键,它标识受实现支持的脚本语言的版本。
另请参见:
常量字段值
方法详细信息
eval
Object eval(String script,
ScriptContext context)
throws ScriptException
立即执行脚本,该脚本的源是作为第一个参数传递的 String。脚本在执行之前,可以重新解析或重新编译。以前的执行在引擎中遗留的状态(包括变量值和已编译的程序)在这次执行中是可见的。
参数:
script - 将由脚本引擎执行的脚本。context - 公开不同范围中的属性集的 ScriptContext。规范中定义了范围 ScriptContext.GLOBAL_SCOPE 和 ScriptContext.ENGINE_SCOPE 的含义。
ScriptContext 的 ENGINE_SCOPE Bindings 包含将在此脚本执行期间使用的应用程序对象脚本变量的 bindings。
返回:
执行脚本所返回的值。
抛出:
ScriptException - 如果脚本发生错误。对于底层脚本实现抛出的经过检查的 Exception,ScriptEngine 应该创建并抛出 ScriptException 包装器。
NullPointerException - 如果任一参数为 null。
eval
Object eval(Reader reader,
ScriptContext context)
throws ScriptException
与 eval(String, ScriptContext) 相同,其中脚本的源是从 Reader 读取的。
参数:
reader - 将由脚本引擎执行的脚本的源。context - 传递给脚本引擎的 ScriptContext。
返回:
执行脚本所返回的值。
抛出:
ScriptException - 如果脚本发生错误。
NullPointerException - 如果任一参数为 null。
eval
Object eval(String script)
throws ScriptException
执行指定的脚本。使用 ScriptEngine 的默认 ScriptContext。
参数:
script - 要执行的脚本语言源。
返回:
执行脚本所返回的值。
抛出:
ScriptException - 如果脚本发生错误。
NullPointerException - 如果参数为 null。
eval
Object eval(Reader reader)
throws ScriptException
除了脚本的源是以 Reader 形式提供的外,与 eval(String) 相同。
参数:
reader - 脚本的源。
返回:
脚本返回的值。
抛出:
ScriptException - 如果脚本发生错误。
NullPointerException - 如果参数为 null。
eval
Object eval(String script,
Bindings n)
throws ScriptException
执行脚本,脚本执行期间使用 Bindings 参数作为 ScriptEngine 的 ENGINE_SCOPE Bindings。使用默认 ScriptContext 的 Reader、Writer 和非 ENGINE_SCOPE Bindings。ScriptEngine 的 ENGINE_SCOPE Bindings 不变,其映射关系不随脚本执行发生改变。
参数:
script - 脚本的源。n - 将用于脚本执行的属性的 Bindings。
返回:
脚本返回的值。
抛出:
ScriptException - 如果脚本发生错误。
NullPointerException - 如果任一参数为 null。
eval
Object eval(Reader reader,
Bindings n)
throws ScriptException
除了脚本的源是以 Reader 形式提供的外,与 eval(String, Bindings) 相同。
参数:
reader - 脚本的源。n - 属性的 Bindings。
返回:
脚本返回的值。
抛出:
ScriptException - 如果发生错误。
NullPointerException - 如果任一参数为 null。
put
void put(String key,
Object value)
设置 ScriptEngine 的状态中的键/值对,它创建一个将在脚本执行中使用或者以其他方式使用的 Java Language Binding,具体取决于该键是否被保留。必须与 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 创建的,则该管理器将设置全局范围 bindings。如果没有与此 ScriptEngine 关联的全局范围,则此范围可能为 null
ScriptContext.ENGINE_SCOPE - 表示此 ScriptEngine 的状态的指定值的集合。在使用关联键作为变量名称的脚本中,这些值通常是可见的。
ScriptEngine 的默认 ScriptContext 中定义的其他范围值。
返回的 Bindings 实例必须与对 ScriptEngine 的默认 ScriptContext 调用 ScriptContext 的 getBindings 方法(使用相应参数)所返回的实例一样。
参数:
scope - ScriptContext.ENGINE_SCOPE 或 ScriptContext.GLOBAL_SCOPE,指定要返回的 Bindings。ScriptContext 的实现可以定义其他范围。如果 ScriptEngine 的默认 ScriptContext 定义了其他范围,则这些范围都可以传递给该参数,以获取相应的 Bindings。
返回:
指定范围的 Bindings。
抛出:
IllegalArgumentException - 如果指定范围无效
setBindings
void setBindings(Bindings bindings,
int scope)
设置将由脚本使用的指定值的范围。可能的范围有:
ScriptContext.ENGINE_SCOPE - 指定的 Bindings 将替代 ScriptEngine 的引擎范围。
ScriptContext.GLOBAL_SCOPE - 指定的 Bindings 必须作为 GLOBAL_SCOPE 可见。
ScriptEngine 的默认 ScriptContext 中定义的其他范围值。
该方法必须与对 ScriptEngine 的默认 ScriptContext 调用 ScriptContext 的 setBindings 方法(使用 scope 的相应值)的效果相同。
参数:
bindings - 指定范围的 Bindings。scope - 指定的范围。ScriptContext.ENGINE_SCOPE、ScriptContext.GLOBAL_SCOPE 或者其他有效范围值。
抛出:
IllegalArgumentException - 如果 scope 有效
NullPointerException - 如果 bindings 为 null 并且 scope 为 ScriptContext.ENGINE_SCOPE
createBindings
Bindings createBindings()
返回一个未初始化的 Bindings。
返回:
用来替代此 ScriptEngine 状态的 Bindings。
getContext
ScriptContext getContext()
返回 ScriptEngine 的默认 ScriptContext,在没有指定 ScriptContext 时,该 ScriptEngine 的 Bindings、Reader 和 Writer 被用于脚本执行。
返回:
ScriptEngine 的默认 ScriptContext。
setContext
void setContext(ScriptContext context)
设置 ScriptEngine 的默认 ScriptContext,在没有指定 ScriptContext 时,该 ScriptEngine 的 Bindings、Reader 和 Writer 被用于脚本执行。
参数:
context - 将替代 ScriptEngine 中默认 ScriptContext 的 ScriptContext。
抛出:
NullPointerException - 如果 context 为 null。
getFactory
ScriptEngineFactory getFactory()
返回此 ScriptEngine 所属的类的 ScriptEngineFactory。
返回:
ScriptEngineFactory
概述
软件包
类
使用
树
已过时
索引
帮助
JavaTM 2 Platform
Standard Ed. 6
上一个类
下一个类
框架
无框架
摘要: 嵌套 | 字段 | 构造方法 | 方法
详细信息: 字段 | 构造方法 | 方法
提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。