java.lang.Object
javax.script.ScriptEngineManager
ScriptEngineManager 实现了对 ScriptEngine 类的发现和实例化机制,并维护一个存储所有由 Manager 创建的引擎共享状态的键/值对集合。该类使用 ServiceLoader 类中描述的服务提供程序机制来枚举所有 ScriptEngineFactory 的实现。
ScriptEngineManager 提供了一个方法来返回所有这些工厂的列表,以及根据语言名称、文件扩展名和 MIME 类型查找工厂的实用方法。
由 Manager 维护的键/值对绑定,称为 Manager 维护的“全局范围”,对由 ScriptEngineManager 创建的所有 ScriptEngine 实例都可用。 Bindings 中的值通常在所有脚本中公开。
- 自版本:
- 1.6
-
Constructor Summary
ConstructorsConstructorDescription调用此构造函数的效果与调用ScriptEngineManager(Thread.currentThread().getContextClassLoader())相同。ScriptEngineManager(ClassLoader loader) 此构造函数使用服务提供程序机制加载给定ClassLoader可见的ScriptEngineFactory的实现。
如果加载器为null,则加载与平台捆绑的脚本引擎工厂。 -
Method Summary
Modifier and TypeMethodDescription获取全局范围中指定键的值getBindings返回globalScope字段的值。getEngineByExtension(String extension) 查找并为给定扩展名创建一个ScriptEnginegetEngineByMimeType(String mimeType) 查找并为给定 MIME 类型创建一个ScriptEnginegetEngineByName(String shortName) 查找并为给定名称创建一个ScriptEngine返回一个列表,其元素是发现机制找到的所有ScriptEngineFactory类的实例。void在全局范围中设置指定的键/值对voidregisterEngineExtension(String extension, ScriptEngineFactory factory) 注册一个ScriptEngineFactory来处理一个扩展名voidregisterEngineMimeType(String type, ScriptEngineFactory factory) 注册一个ScriptEngineFactory来处理一个 MIME 类型voidregisterEngineName(String name, ScriptEngineFactory factory) 注册一个ScriptEngineFactory来处理一个语言名称voidsetBindings(Bindings bindings) setBindings将指定的Bindings存储在globalScope字段中。
-
Constructor Details
-
ScriptEngineManager
public ScriptEngineManager()调用此构造函数的效果与调用ScriptEngineManager(Thread.currentThread().getContextClassLoader())相同。- 参见:
-
ScriptEngineManager
此构造函数使用服务提供程序机制加载给定ClassLoader可见的ScriptEngineFactory的实现。
如果加载器为null,则加载与平台捆绑的脚本引擎工厂。- 参数:
-
loader- 用于发现脚本引擎工厂的类加载器。
-
-
Method Details
-
setBindings
setBindings将指定的Bindings存储在globalScope字段中。ScriptEngineManager 将此Bindings设置为由其创建的ScriptEngine对象的全局绑定。- 参数:
-
bindings- 指定的Bindings - 抛出:
-
IllegalArgumentException- 如果绑定为 null。
-
getBindings
getBindings返回globalScope字段的值。ScriptEngineManager 将此Bindings设置为由其创建的ScriptEngine对象的全局绑定。- 返回:
- globalScope 字段的值。
-
put
在全局范围中设置指定的键/值对- 参数:
-
key- 要设置的键 -
value- 要设置的值。 - 抛出:
-
NullPointerException- 如果键为 null。 -
IllegalArgumentException- 如果键为空字符串。
-
get
获取全局范围中指定键的值- 参数:
-
key- 要返回其值的键。 - 返回:
- 指定键的值。
-
getEngineByName
查找并为给定名称创建一个ScriptEngine。该算法首先搜索已注册为处理指定名称的处理程序的ScriptEngineFactory,使用registerEngineName方法。
如果找不到,则在构造函数存储的ScriptEngineFactory实例集合中搜索具有指定名称的工厂。如果通过任一方法找到ScriptEngineFactory,则用它来创建ScriptEngine实例。- 参数:
-
shortName-ScriptEngine实现的短名称,由其ScriptEngineFactory的getNames方法返回。 - 返回:
-
由搜索中的工厂创建的
ScriptEngine。如果未找到此类工厂,则返回 null。ScriptEngineManager将其自己的globalScopeBindings设置为新创建的ScriptEngine的GLOBAL_SCOPEBindings。 - 抛出:
-
NullPointerException- 如果 shortName 为 null。
-
getEngineByExtension
查找并为给定扩展名创建一个ScriptEngine。使用getEngineByName使用的算法,不同之处在于搜索始于使用registerEngineExtension注册为处理给定扩展名的ScriptEngineFactory。- 参数:
-
extension- 给定的扩展名 - 返回:
-
处理具有此扩展名的脚本的引擎。如果未找到,则返回
null。 - 抛出:
-
NullPointerException- 如果 extension 为 null。
-
getEngineByMimeType
查找并为给定 MIME 类型创建一个ScriptEngine。使用getEngineByName使用的算法,不同之处在于搜索始于使用registerEngineMimeType注册为处理给定 MIME 类型的ScriptEngineFactory。- 参数:
-
mimeType- 给定的 MIME 类型 - 返回:
-
处理具有此 MIME 类型的脚本的引擎。如果未找到,则返回
null。 - 抛出:
-
NullPointerException- 如果 mimeType 为 null。
-
getEngineFactories
返回一个列表,其元素是发现机制找到的所有ScriptEngineFactory类的实例。- 返回:
-
所有发现的
ScriptEngineFactory列表。
-
registerEngineName
注册一个ScriptEngineFactory来处理语言名称。覆盖使用发现机制找到的任何此类关联。- 参数:
-
name- 要与ScriptEngineFactory关联的名称。 -
factory- 要与给定名称关联的类。 - 抛出:
-
NullPointerException- 如果任何参数为 null。
-
registerEngineMimeType
注册一个ScriptEngineFactory来处理 MIME 类型。覆盖使用发现机制找到的任何此类关联。- 参数:
-
type- 要与ScriptEngineFactory关联的 MIME 类型。 -
factory- 要与给定 MIME 类型关联的类。 - 抛出:
-
NullPointerException- 如果任何参数为 null。
-
registerEngineExtension
注册一个ScriptEngineFactory来处理扩展名。覆盖使用发现机制找到的任何此类关联。- 参数:
-
extension- 要与ScriptEngineFactory关联的扩展名类型。 -
factory- 要与给定扩展名关联的类。 - 抛出:
-
NullPointerException- 如果任何参数为 null。
-