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