java.lang.Object
javax.script.ScriptEngineManager
ScriptEngineManager
实现了对 ScriptEngine
类的发现和实例化机制,并维护一个存储所有由 Manager 创建的引擎共享状态的键/值对集合。该类使用 ServiceLoader
类中描述的服务提供程序机制来枚举所有 ScriptEngineFactory
的实现。
ScriptEngineManager
提供了一个方法来返回所有这些工厂的列表,以及根据语言名称、文件扩展名和 MIME 类型查找工厂的实用方法。
由 Manager 维护的键/值对绑定,称为 Manager 维护的“全局范围”,对由 ScriptEngineManager
创建的所有 ScriptEngine
实例都可用。 Bindings
中的值通常在所有脚本中公开。
- 自版本:
- 1.6
-
Constructor Summary
ConstructorDescription调用此构造函数的效果与调用ScriptEngineManager(Thread.currentThread().getContextClassLoader())
相同。ScriptEngineManager
(ClassLoader loader) 此构造函数使用服务提供程序机制加载给定ClassLoader
可见的ScriptEngineFactory
的实现。
如果加载器为null
,则加载与平台捆绑的脚本引擎工厂。 -
Method Summary
Modifier and TypeMethodDescription获取全局范围中指定键的值getBindings
返回globalScope
字段的值。getEngineByExtension
(String extension) 查找并为给定扩展名创建一个ScriptEngine
getEngineByMimeType
(String mimeType) 查找并为给定 MIME 类型创建一个ScriptEngine
getEngineByName
(String shortName) 查找并为给定名称创建一个ScriptEngine
返回一个列表,其元素是发现机制找到的所有ScriptEngineFactory
类的实例。void
在全局范围中设置指定的键/值对void
registerEngineExtension
(String extension, ScriptEngineFactory factory) 注册一个ScriptEngineFactory
来处理一个扩展名void
registerEngineMimeType
(String type, ScriptEngineFactory factory) 注册一个ScriptEngineFactory
来处理一个 MIME 类型void
registerEngineName
(String name, ScriptEngineFactory factory) 注册一个ScriptEngineFactory
来处理一个语言名称void
setBindings
(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
将其自己的globalScope
Bindings
设置为新创建的ScriptEngine
的GLOBAL_SCOPE
Bindings
。 - 抛出:
-
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。
-