- 所有已知的实现类:
AbstractScriptEngine
public interface ScriptEngine
ScriptEngine 是基本接口,其方法必须在本规范的每个实现中都具有完整的功能。这些方法提供基本的脚本功能。编写到这个简单接口的应用程序有望在每个实现中进行最少的修改。它包括执行脚本的方法,以及设置和获取值的方法。
这些值是两种类型的键/值对。第一种类型的对由那些其密钥在本规范中或由单独的实现保留和定义的对组成。保留键对中的值具有指定的含义。
另一种类型的对由那些创建 Java 语言绑定的对组成,这些值通常在脚本中由相应的键或它们的修饰形式表示。
- 自从:
- 1.6
-
字段摘要
字段修饰符和类型Field描述static final String将位置参数数组传递给脚本的命名值的保留键。static final String命名值的保留键,该值是ScriptEngine实现的名称。static final String命名值的保留键,用于标识ScriptEngine实现的版本。static final String命名值的保留键,该值是正在执行的文件的名称。static final String命名值的保留键,该值是实现支持的脚本语言的全名。static final String命名值的保留键,用于标识实现支持的脚本语言版本。static final String命名值的保留键,用于标识脚本语言的简称。 -
方法总结
修饰符和类型方法描述返回未初始化的Bindings。与eval(String)相同,除了脚本源作为Reader提供与eval(String, Bindings)相同,除了脚本源作为Reader提供。eval(Reader reader, ScriptContext context) 与eval(String, ScriptContext)相同,其中脚本源是从Reader读取的。执行指定的脚本。在脚本执行期间使用Bindings参数作为ScriptEngine的ENGINE_SCOPEBindings来执行脚本。eval(String script, ScriptContext context) 导致脚本的立即执行,其源是作为第一个参数传递的字符串。检索在此引擎的状态中设置的值。getBindings(int scope) 返回命名值的范围。返回ScriptEngine的默认ScriptContext,当未指定ScriptContext时,其 Bindings、Reader 和 Writers 用于脚本执行。为这个ScriptEngine所属的类返回一个ScriptEngineFactory。void在 ScriptEngine 的状态中设置一个键/值对,它可以创建一个 Java 语言绑定以用于脚本的执行或以其他方式使用,具体取决于键是否被保留。voidsetBindings(Bindings bindings, int scope) 设置脚本使用的命名值的范围。voidsetContext(ScriptContext context) 设置ScriptEngine的默认ScriptContext,当未指定ScriptContext时,其 Bindings、Reader 和 Writers 用于脚本执行。
-
字段详细信息
-
ARGV
将位置参数数组传递给脚本的命名值的保留键。- 参见:
-
FILENAME
命名值的保留键,该值是正在执行的文件的名称。- 参见:
-
ENGINE
命名值的保留键,该值是ScriptEngine实现的名称。- 参见:
-
ENGINE_VERSION
命名值的保留键,用于标识ScriptEngine实现的版本。- 参见:
-
NAME
命名值的保留键,用于标识脚本语言的简称。ScriptEngineManager使用该名称在getEngineByName方法中定位具有给定名称的ScriptEngine。- 参见:
-
LANGUAGE
命名值的保留键,该值是实现支持的脚本语言的全名。- 参见:
-
LANGUAGE_VERSION
命名值的保留键,用于标识实现支持的脚本语言版本。- 参见:
-
-
方法详情
-
eval
导致脚本的立即执行,其源是作为第一个参数传递的字符串。脚本可以在执行前重新解析或重新编译。先前执行留在引擎中的状态,包括变量值和编译过程,在这次执行期间可能是可见的。- 参数:
script- 脚本引擎要执行的脚本。context- AScriptContext在不同范围内公开属性集。范围ScriptContext.GLOBAL_SCOPE和ScriptContext.ENGINE_SCOPE的含义在规范中定义。ScriptContext的ENGINE_SCOPEBindings包含脚本变量与在此脚本执行期间要使用的应用程序对象的绑定。- 返回:
- 脚本执行返回的值。
- 抛出:
ScriptException- 如果脚本中出现错误。 ScriptEngines 应该为底层脚本实现抛出的已检查异常创建并抛出ScriptException包装器。NullPointerException- 如果任一参数为空。
-
eval
与eval(String, ScriptContext)相同,其中脚本源是从Reader读取的。- 参数:
reader- 脚本引擎要执行的脚本源。context- 传递给脚本引擎的ScriptContext。- 返回:
- 脚本执行返回的值。
- 抛出:
ScriptException- 如果脚本中出现错误。 ScriptEngines 应该为底层脚本实现抛出的已检查异常创建并抛出ScriptException包装器。NullPointerException- 如果任一参数为空。
-
eval
执行指定的脚本。使用ScriptEngine的默认ScriptContext。- 参数:
script- 要执行的脚本语言源。- 返回:
- 脚本执行返回的值。
- 抛出:
ScriptException- 如果脚本中出现错误。 ScriptEngines 应该为底层脚本实现抛出的已检查异常创建并抛出ScriptException包装器。NullPointerException- 如果参数为空。
-
eval
与eval(String)相同,除了脚本源作为Reader提供- 参数:
reader- 脚本的来源。- 返回:
- 脚本返回的值。
- 抛出:
ScriptException- 如果脚本中出现错误。 ScriptEngines 应该为底层脚本实现抛出的已检查异常创建并抛出ScriptException包装器。NullPointerException- 如果参数为空。
-
eval
在脚本执行期间使用Bindings参数作为ScriptEngine的ENGINE_SCOPEBindings来执行脚本。使用默认ScriptContext的Reader、Writer和非ENGINE_SCOPEBindings。ScriptEngine的ENGINE_SCOPEBindings未更改,其映射未因脚本执行而改变。- 参数:
script- 脚本的来源。n- 用于脚本执行的属性的Bindings。- 返回:
- 脚本返回的值。
- 抛出:
ScriptException- 如果脚本中出现错误。 ScriptEngines 应该为底层脚本实现抛出的已检查异常创建并抛出ScriptException包装器。NullPointerException- 如果任一参数为空。
-
eval
与eval(String, Bindings)相同,除了脚本源作为Reader提供。- 参数:
reader- 脚本的来源。n- 属性的Bindings。- 返回:
- 脚本返回的值。
- 抛出:
ScriptException- 如果脚本中出现错误。 ScriptEngines 应该为底层脚本实现抛出的已检查异常创建并抛出ScriptException包装器。NullPointerException- 如果任一参数为空。
-
put
在 ScriptEngine 的状态中设置一个键/值对,它可以创建一个 Java 语言绑定以用于脚本的执行或以其他方式使用,具体取决于键是否被保留。必须与getBindings(ScriptContext.ENGINE_SCOPE).put具有相同的效果。- 参数:
key- 要添加的命名值的名称value- 要添加的命名值的值。- 抛出:
NullPointerException- 如果键为空。IllegalArgumentException- 如果键为空。
-
get
检索在此引擎的状态中设置的值。该值可能是使用setValue设置的值或ScriptEngine状态下的某个其他值,具体取决于实现。必须与getBindings(ScriptContext.ENGINE_SCOPE).get具有相同的效果- 参数:
key- 要返回其值的键- 返回:
- 给定键的值
- 抛出:
NullPointerException- 如果键为空。IllegalArgumentException- 如果键为空。
-
getBindings
返回命名值的范围。可能的范围是:
ScriptContext.GLOBAL_SCOPE- 表示全局范围的命名值集。如果这个ScriptEngine是由ScriptEngineManager创建的,那么管理器设置全局范围绑定。如果没有全局范围与此ScriptEngine关联,则这可能是nullScriptContext.ENGINE_SCOPE- 表示此ScriptEngine状态的命名值集。这些值通常在使用关联键作为变量名的脚本中可见。ScriptEngine的默认值ScriptContext中定义的范围的任何其他值。
返回的Bindings实例必须与ScriptContext的getBindings方法返回的实例相同,该方法使用ScriptEngine的默认ScriptContext上的相应参数调用。- 参数:
scope-ScriptContext.ENGINE_SCOPE或ScriptContext.GLOBAL_SCOPE指定要返回的Bindings。ScriptContext的实现可以定义额外的范围。如果ScriptEngine的默认ScriptContext定义了额外的范围,则可以传递其中任何一个以获取相应的Bindings。- 返回:
-
具有指定作用域的
Bindings。 - 抛出:
IllegalArgumentException- 如果指定范围无效
-
setBindings
设置脚本使用的命名值的范围。可能的范围是:
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- 如果范围无效NullPointerException- 如果绑定为空且范围为ScriptContext.ENGINE_SCOPE
-
createBindings
Bindings createBindings()返回未初始化的Bindings。- 返回:
-
一个
Bindings可用于替换此ScriptEngine的状态。
-
getContext
ScriptContext getContext()返回ScriptEngine的默认ScriptContext,当未指定ScriptContext时,其 Bindings、Reader 和 Writers 用于脚本执行。- 返回:
ScriptEngine的默认ScriptContext。
-
setContext
设置ScriptEngine的默认ScriptContext,当未指定ScriptContext时,其 Bindings、Reader 和 Writers 用于脚本执行。- 参数:
context- 一个ScriptContext将替换ScriptEngine中的默认值ScriptContext。- 抛出:
NullPointerException- 如果上下文为空。
-
getFactory
ScriptEngineFactory getFactory()为这个ScriptEngine所属的类返回一个ScriptEngineFactory。- 返回:
ScriptEngineFactory
-