Module java.scripting
Package javax.script

Class ScriptEngineManager

java.lang.Object
javax.script.ScriptEngineManager

public class ScriptEngineManager extends Object
ScriptEngineManager 实现了对 ScriptEngine 类的发现和实例化机制,并维护一个存储所有由 Manager 创建的引擎共享状态的键/值对集合。该类使用 ServiceLoader 类中描述的服务提供程序机制来枚举所有 ScriptEngineFactory 的实现。

ScriptEngineManager 提供了一个方法来返回所有这些工厂的列表,以及根据语言名称、文件扩展名和 MIME 类型查找工厂的实用方法。

由 Manager 维护的键/值对绑定,称为 Manager 维护的“全局范围”,对由 ScriptEngineManager 创建的所有 ScriptEngine 实例都可用。 Bindings 中的值通常在所有脚本中公开。

自版本:
1.6
  • Constructor Details

    • ScriptEngineManager

      public ScriptEngineManager()
      调用此构造函数的效果与调用 ScriptEngineManager(Thread.currentThread().getContextClassLoader()) 相同。
      参见:
    • ScriptEngineManager

      public ScriptEngineManager(ClassLoader loader)
      此构造函数使用服务提供程序机制加载给定 ClassLoader 可见的 ScriptEngineFactory 的实现。

      如果加载器为 null,则加载与平台捆绑的脚本引擎工厂。
      参数:
      loader - 用于发现脚本引擎工厂的类加载器。
  • Method Details

    • setBindings

      public void setBindings(Bindings bindings)
      setBindings 将指定的 Bindings 存储在 globalScope 字段中。ScriptEngineManager 将此 Bindings 设置为由其创建的 ScriptEngine 对象的全局绑定。
      参数:
      bindings - 指定的 Bindings
      抛出:
      IllegalArgumentException - 如果绑定为 null。
    • getBindings

      public Bindings getBindings()
      getBindings 返回 globalScope 字段的值。ScriptEngineManager 将此 Bindings 设置为由其创建的 ScriptEngine 对象的全局绑定。
      返回:
      globalScope 字段的值。
    • put

      public void put(String key, Object value)
      在全局范围中设置指定的键/值对
      参数:
      key - 要设置的键
      value - 要设置的值。
      抛出:
      NullPointerException - 如果键为 null。
      IllegalArgumentException - 如果键为空字符串。
    • get

      public Object get(String key)
      获取全局范围中指定键的值
      参数:
      key - 要返回其值的键。
      返回:
      指定键的值。
    • getEngineByName

      public ScriptEngine getEngineByName(String shortName)
      查找并为给定名称创建一个 ScriptEngine。该算法首先搜索已注册为处理指定名称的处理程序的 ScriptEngineFactory,使用 registerEngineName 方法。

      如果找不到,则在构造函数存储的 ScriptEngineFactory 实例集合中搜索具有指定名称的工厂。如果通过任一方法找到 ScriptEngineFactory,则用它来创建 ScriptEngine 实例。
      参数:
      shortName - ScriptEngine 实现的短名称,由其 ScriptEngineFactorygetNames 方法返回。
      返回:
      由搜索中的工厂创建的 ScriptEngine。如果未找到此类工厂,则返回 null。 ScriptEngineManager 将其自己的 globalScope Bindings 设置为新创建的 ScriptEngineGLOBAL_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。