类 ScriptEngineManager

java.lang.Object
javax.script.ScriptEngineManager

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

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

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

自从:
1.6
  • 构造方法详细信息

    • ScriptEngineManager

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

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

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

    • setBindings

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

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

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

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

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

      如果找不到,它会在构造函数存储的一组 ScriptEngineFactory 实例中搜索具有指定名称的实例。如果通过任一方法找到 ScriptEngineFactory,则使用它来创建 ScriptEngine 的实例。
      参数:
      shortName - ScriptEngine 实现的简称。由其 ScriptEngineFactorygetNames 方法返回。
      返回:
      A ScriptEngine由位于搜索中的工厂创建。如果找不到这样的工厂,则返回 null。 ScriptEngineManager 将自己的 globalScope Bindings 设置为新创建的 ScriptEngineGLOBAL_SCOPE Bindings
      抛出:
      NullPointerException - 如果 shortName 为空。
    • getEngineByExtension

      public ScriptEngine  getEngineByExtension(String  extension)
      为给定的扩展查找并创建一个 ScriptEngine。使用 getEngineByName 使用的算法,除了搜索开始于寻找 ScriptEngineFactory 注册以使用 registerEngineExtension 处理给定扩展。
      参数:
      extension - 给定的扩展名
      返回:
      处理带有此扩展的脚本的引擎。如果未找到,则返回 null
      抛出:
      NullPointerException - 如果扩展名为空。
    • getEngineByMimeType

      public ScriptEngine  getEngineByMimeType(String  mimeType)
      为给定的 MIME 类型查找并创建一个 ScriptEngine。使用 getEngineByName 使用的算法,除了搜索开始于寻找 ScriptEngineFactory 注册以使用 registerEngineMimeType 处理给定的 mime 类型。
      参数:
      mimeType - 给定的 mime 类型
      返回:
      处理具有此 MIME 类型的脚本的引擎。如果未找到,则返回 null
      抛出:
      NullPointerException - 如果 mimeType 为空。
    • getEngineFactories

      public List <ScriptEngineFactory > getEngineFactories()
      返回一个列表,其元素是发现机制找到的所有 ScriptEngineFactory 类的实例。
      返回:
      所有发现的 ScriptEngineFactory 的列表。
    • registerEngineName

      public void registerEngineName(String  name, ScriptEngineFactory  factory)
      注册一个 ScriptEngineFactory 来处理语言名称。覆盖使用发现机制发现的任何此类关联。
      参数:
      name - 要与 ScriptEngineFactory 关联的名称。
      factory - 与给定名称关联的类。
      抛出:
      NullPointerException - 如果任何参数为空。
    • registerEngineMimeType

      public void registerEngineMimeType(String  type, ScriptEngineFactory  factory)
      注册一个 ScriptEngineFactory 来处理 mime 类型。覆盖使用发现机制发现的任何此类关联。
      参数:
      type - 与 ScriptEngineFactory 关联的 mime 类型。
      factory - 与给定 MIME 类型关联的类。
      抛出:
      NullPointerException - 如果任何参数为空。
    • registerEngineExtension

      public void registerEngineExtension(String  extension, ScriptEngineFactory  factory)
      注册一个 ScriptEngineFactory 来处理扩展。覆盖使用发现机制发现的任何此类关联。
      参数:
      extension - 与 ScriptEngineFactory 关联的扩展类型。
      factory - 与给定扩展关联的类。
      抛出:
      NullPointerException - 如果任何参数为空。