java.lang.Object javax.script.ScriptEngineManager
public class ScriptEngineManager
ScriptEngineManager
为 ScriptEngine
类实现一个发现和实例化机制,还维护一个键/值对集合来存储所有 Manager 创建的引擎所共享的状态。此类使用服务提供者机制枚举所有的 ScriptEngineFactory
实现。
ScriptEngineManager
提供了一个方法,可以返回一个所有工厂实现和基于语言名称、文件扩展名和 mime 类型查找工厂的实用方法所组成的数组。
键/值对的 Bindings
(即由管理器维护的 "Global Scope")对于 ScriptEngineManager
创建的所有 ScriptEngine
实例都是可用的。Bindings
中的值通常公开于所有脚本中。
构造方法摘要 | |
---|---|
ScriptEngineManager() 如果调用者可访问线程上下文 ClassLoader,则调用此构造方法的效果与调用 ScriptEngineManager(Thread.currentThread().getContextClassLoader()) 相同。 |
|
ScriptEngineManager(ClassLoader loader) 此构造方法使用服务调用者机制加载对于给定 ClassLoader 可见的 ScriptEngineFactory 实现。 |
方法摘要 | |
---|---|
Object |
get(String key) 获取 Global Scope 中指定键的值。 |
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) 设置 Global Scope 中指定的键/值对。 |
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 存储 globalScope 字段中的指定 Bindings 。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
public ScriptEngineManager()
ScriptEngineManager(Thread.currentThread().getContextClassLoader())
相同。否则,效果与调用
ScriptEngineManager(null)
相同。
public ScriptEngineManager(ClassLoader loader)
ClassLoader
可见的
ScriptEngineFactory
实现。
null
,则加载与平台打包在一起的脚本引擎工厂,以及常用扩展目录(已安装的扩展)中的脚本引擎工厂。
loader
- 用来发现脚本引擎工厂的 ClassLoader。
方法详细信息 |
---|
public void setBindings(Bindings bindings)
setBindings
存储
globalScope
字段中的指定
Bindings
。ScriptEngineManager 将此
Bindings
设置为由它创建的
ScriptEngine
对象的全局 bindings。
bindings
- 指定的
Bindings
IllegalArgumentException
- 如果 bindings 为 null。
public Bindings getBindings()
getBindings
返回
globalScope
字段的值。ScriptEngineManager 将此
Bindings
设置为由它创建的
ScriptEngine
对象的全局 bindings。
public void put(String key, Object value)
key
- 要设置的键
value
- 要设置的值。
NullPointerException
- 如果 key 为 null。
IllegalArgumentException
- 如果 key 为空字符串。
public Object get(String key)
key
- 将返回其值的键。
public ScriptEngine getEngineByName(String shortName)
ScriptEngine
。该算法首先查找一个
ScriptEngineFactory
,该
ScriptEngineFactory
已经针对给定名称使用
registerEngineName
方法注册为处理程序。
ScriptEngineFactory
实例数组,以获得具有指定名称的 ScriptEngineFactory。如果通过这两种方法之一找到了一个
ScriptEngineFactory
,则用它来创建
ScriptEngine
实例。
shortName
-
ScriptEngine
实现的短名称,由其
ScriptEngineFactory
的
getNames
方法返回。
ScriptEngine
。如果没有找到这样的工厂,则返回 null。
ScriptEngineManager
将它自己的
globalScope
Bindings
设置为新建
ScriptEngine
的
GLOBAL_SCOPE
Bindings
。
NullPointerException
- 如果 shortName 为 null。
public ScriptEngine getEngineByExtension(String extension)
ScriptEngine
。使用
getEngineByName
所使用的算法,不同之处在于搜索从查找已使用
registerEngineExtension
注册以处理给定扩展的
ScriptEngineFactory
开始。
extension
- 给定扩展
null
。
NullPointerException
- 如果 extension 为 null。
public ScriptEngine getEngineByMimeType(String mimeType)
ScriptEngine
。使用
getEngineByName
所使用的算法,不同之处在于搜索从查找已使用
registerEngineMimeType
注册以处理给定 mime 类型的
ScriptEngineFactory
开始。
mimeType
- 给定 mime 类型
null
。
NullPointerException
- 如果 mimeType 为 null。
public List<ScriptEngineFactory> getEngineFactories()
ScriptEngineFactory
类的实例。
ScriptEngineFactory
所组成的列表。
public void registerEngineName(String name, ScriptEngineFactory factory)
ScriptEngineFactory
来处理语言名称。重写所有使用发现机制找到的这类关联。
name
- 要与
ScriptEngineFactory
关联的名称。
factory
- 要与给定名称关联的类。
NullPointerException
- 如果任何参数为 null。
public void registerEngineMimeType(String type, ScriptEngineFactory factory)
ScriptEngineFactory
来处理 mime 类型。重写所有使用发现机制找到的这类关联。
type
- 要与
ScriptEngineFactory
关联的 mime 类型。
factory
- 要与给定 mime 类型关联的类。
NullPointerException
- 如果任何参数为 null。
public void registerEngineExtension(String extension, ScriptEngineFactory factory)
ScriptEngineFactory
来处理扩展。重写所有使用发现机制找到的这类关联。
extension
- 要与
ScriptEngineFactory
关联的扩展类型。
factory
- 要与给定扩展关联的类。
NullPointerException
- 如果任何参数为 null。