- 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
,则加载与平台捆绑在一起的脚本引擎工厂。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 Object
get(String key)
获取全局范围中指定键的值Bindings
getBindings()
getBindings
返回globalScope
字段的值。ScriptEngine
getEngineByExtension(String extension)
查找并为给定的扩展创建ScriptEngine
。ScriptEngine
getEngineByMimeType(String mimeType)
查找并为给定的mime类型创建ScriptEngine
。ScriptEngine
getEngineByName(String shortName)
查找并为给定名称创建ScriptEngine
。List<ScriptEngineFactory>
getEngineFactories()
返回一个列表,其元素是发现机制找到的所有ScriptEngineFactory
类的实例。void
put(String key, Object value)
在全局范围中设置指定的键/值对。void
registerEngineExtension(String extension, ScriptEngineFactory factory)
注册ScriptEngineFactory
以处理扩展。void
registerEngineMimeType(String type, ScriptEngineFactory factory)
注册ScriptEngineFactory
以处理哑剧类型。void
registerEngineName(String name, ScriptEngineFactory factory)
注册ScriptEngineFactory
以处理语言名称。void
setBindings(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
设置自己的globalScope
Bindings
为GLOBAL_SCOPE
Bindings
新创建的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
类的实例。- 结果
-
所有发现的列表
ScriptEngineFactory
s。
-
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。
-
-