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