- java.lang.Object
-
- javax.script.ScriptEngineManager
-
public class ScriptEngineManager extends Object
ScriptEngineManager实现了ScriptEngine类的发现和实例化机制,并且还维护了一组键/值对,用于存储由Manager创建的所有引擎共享的状态。 这个类使用说明的服务提供商机制ServiceLoader类枚举的所有实现ScriptEngineFactory。
ScriptEngineManager提供了一种方法,用于返回所有这些工厂的列表以及基于语言名称,文件扩展名和mime类型查找工厂的实用程序方法。该
Bindings键/值对的,被称为“全球范围”由管理器维护可用于的所有实例ScriptEngine由创建ScriptEngineManager。Bindings中的值通常在所有脚本中公开。- 从以下版本开始:
- 1.6
-
-
构造方法摘要
构造方法 构造器 描述 ScriptEngineManager()调用此构造函数的效果与调用ScriptEngineManager(Thread.currentThread().getContextClassLoader())相同。ScriptEngineManager(ClassLoader loader)此构造函数使用服务提供程序机制加载给定ClassLoader可见的ScriptEngineFactory的实现。
如果loader是null,则加载与平台捆绑在一起的脚本引擎工厂。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 Objectget(String key)获取全局范围中指定键的值BindingsgetBindings()getBindings返回globalScope字段的值。ScriptEnginegetEngineByExtension(String extension)查找并为给定的扩展创建ScriptEngine。ScriptEnginegetEngineByMimeType(String mimeType)查找并为给定的mime类型创建ScriptEngine。ScriptEnginegetEngineByName(String shortName)查找并为给定名称创建ScriptEngine。List<ScriptEngineFactory>getEngineFactories()返回一个列表,其元素是发现机制找到的所有ScriptEngineFactory类的实例。voidput(String key, Object value)在全局范围中设置指定的键/值对。voidregisterEngineExtension(String extension, ScriptEngineFactory factory)注册ScriptEngineFactory以处理扩展。voidregisterEngineMimeType(String type, ScriptEngineFactory factory)注册ScriptEngineFactory以处理哑剧类型。voidregisterEngineName(String name, ScriptEngineFactory factory)注册ScriptEngineFactory以处理语言名称。voidsetBindings(Bindings bindings)setBindings存储指定Bindings在globalScope领域。
-
-
-
构造方法详细信息
-
ScriptEngineManager
public ScriptEngineManager()
调用此构造函数的效果与调用ScriptEngineManager(Thread.currentThread().getContextClassLoader())相同。
-
ScriptEngineManager
public ScriptEngineManager(ClassLoader loader)
此构造函数使用服务提供程序机制加载给定ClassLoader可见的ScriptEngineFactory的实现。
如果loader是null,则加载与平台捆绑在一起的脚本引擎工厂。
- 参数
-
loader- 用于发现脚本引擎工厂的ClassLoader。
-
-
方法详细信息
-
setBindings
public void setBindings(Bindings bindings)
setBindings存储指定Bindings在globalScope领域。 ScriptEngineManager将此Bindings设置为ScriptEngine创建的ScriptEngine对象的全局绑定。- 参数
-
bindings- 指定的Bindings - 异常
-
IllegalArgumentException- 如果绑定为空。
-
getBindings
public Bindings getBindings()
getBindings返回globalScope字段的值。 ScriptEngineManager将此Bindings设置为ScriptEngine创建的ScriptEngine对象的全局绑定。- 结果
- globalScope字段。
-
put
public void put(String key, Object value)
在全局范围中设置指定的键/值对。- 参数
-
key- 设置的关键 -
value- 要设置的值。 - 异常
-
NullPointerException- 如果key为null。 -
IllegalArgumentException- 如果key为空字符串。
-
getEngineByName
public ScriptEngine getEngineByName(String shortName)
查找并为给定名称创建ScriptEngine。 该算法的第一搜索ScriptEngineFactory已被注册为使用指定名称的处理程序registerEngineName方法。
如果找不到,则会搜索构造函数存储的ScriptEngineFactory实例集,以ScriptEngineFactory具有指定名称的实例。 如果通过任一方法找到ScriptEngineFactory,则它用于创建ScriptEngine实例。- 参数
-
shortName-ScriptEngine实现的ScriptEngine。 由其ScriptEngineFactory的getNames方法返回。 - 结果
-
由工厂创建的
ScriptEngine位于搜索中。 如果未找到此类工厂,则返回null。ScriptEngineManager设置自己的globalScopeBindings为GLOBAL_SCOPEBindings新创建的ScriptEngine。 - 异常
-
NullPointerException- 如果shortName为null。
-
getEngineByExtension
public ScriptEngine getEngineByExtension(String extension)
查找并为给定的扩展创建ScriptEngine。 使用getEngineByName使用的算法,不同之处在于搜索开始时查找ScriptEngineFactory注册的ScriptEngineFactory以使用registerEngineExtension处理给定的扩展。- 参数
-
extension- 给定的扩展名 - 结果
-
使用此扩展程序处理脚本的引擎。
如果找不到,则返回
null。 - 异常
-
NullPointerException- 如果扩展名为null。
-
getEngineByMimeType
public ScriptEngine getEngineByMimeType(String mimeType)
查找并为给定的mime类型创建ScriptEngine。 使用getEngineByName使用的算法,除了通过查找ScriptEngineFactory以使用registerEngineMimeType处理给定的mime类型来开始registerEngineMimeType。- 参数
-
mimeType- 给定的mime类型 - 结果
-
使用此mime类型处理脚本的引擎。
如果找不到,则返回
null。 - 异常
-
NullPointerException- 如果mimeType为null。
-
getEngineFactories
public List<ScriptEngineFactory> getEngineFactories()
返回一个列表,其元素是发现机制找到的所有ScriptEngineFactory类的实例。- 结果
-
所有发现的列表
ScriptEngineFactorys。
-
registerEngineName
public void registerEngineName(String name, ScriptEngineFactory factory)
注册ScriptEngineFactory以处理语言名称。 覆盖使用Discovery机制找到的任何此类关联。- 参数
-
name- 与ScriptEngineFactory关联的ScriptEngineFactory。 -
factory- 与给定名称关联的类。 - 异常
-
NullPointerException- 如果任何参数为null。
-
registerEngineMimeType
public void registerEngineMimeType(String type, ScriptEngineFactory factory)
注册ScriptEngineFactory以处理mime类型。 覆盖使用Discovery机制找到的任何此类关联。- 参数
-
type- 与ScriptEngineFactory关联的mime类型。 -
factory- 与给定mime类型关联的类。 - 异常
-
NullPointerException- 如果任何参数为null。
-
registerEngineExtension
public void registerEngineExtension(String extension, ScriptEngineFactory factory)
注册ScriptEngineFactory以处理扩展。 覆盖使用Discovery机制找到的任何此类关联。- 参数
-
extension- 与ScriptEngineFactory关联的扩展类型。 -
factory- 与给定扩展名关联的类。 - 异常
-
NullPointerException- 如果任何参数为null。
-
-