模块  java.scripting
软件包  javax.script

Interface ScriptEngine

  • 所有已知实现类:
    AbstractScriptEngineNashornScriptEngine

    public interface ScriptEngine
    ScriptEngine是基本接口,其方法必须在本规范的每个实现中完全起作用。

    这些方法提供基本脚本功能。 写入这个简单接口的应用程序可以在每个实现中进行最少的修改。 它包括执行脚本的方法,以及设置和获取值的方法。

    值是两种类型的键/值对。 第一类对包括其密钥在本说明书中保留和定义的那些或由各个实现组成。 具有保留键的对中的值具有指定的含义。

    另一种类型的对包括那些创建Java语言绑定的对,这些值通常由脚本中的相应键或它们的装饰形式表示。
    从以下版本开始:
    1.6
    • 字段汇总

      字段  
      变量和类型 字段 描述
      static String ARGV
      用于将位置参数数组传递给脚本的命名值的保留键。
      static String ENGINE
      指定值的保留键,该值是 ScriptEngine实现的名称。
      static String ENGINE_VERSION
      标识值的保留键,用于标识 ScriptEngine实现的版本。
      static String FILENAME
      指定值的保留键,它是正在执行的文件的名称。
      static String LANGUAGE
      指定值的保留键,它是实现支持的脚本语言的全名。
      static String LANGUAGE_VERSION
      指定值的保留键,用于标识实现支持的脚本语言的版本。
      static String NAME
      标识值的保留键,用于标识脚本语言的短名称。
    • 方法摘要

      所有方法  实例方法 抽象方法 
      变量和类型 方法 描述
      Bindings createBindings()
      返回未初始化的 Bindings
      Object eval​(Reader reader)
      eval(String)相同,但脚本源是以 Reader提供的
      Object eval​(Reader reader, Bindings n)
      eval(String, Bindings)相同,但脚本源是以 Reader提供的。
      Object eval​(Reader reader, ScriptContext context)
      eval(String, ScriptContext)相同,其中脚本源是从 Reader读取的。
      Object eval​(String script)
      执行指定的脚本。
      Object eval​(String script, Bindings n)
      在脚本执行期间,使用 Bindings参数作为 ENGINE_SCOPE Bindings ScriptEngine执行脚本。
      Object eval​(String script, ScriptContext context)
      导致立即执行脚本,该脚本的源是作为第一个参数传递的String。
      Object get​(String key)
      检索在此引擎状态下设置的值。
      Bindings getBindings​(int scope)
      返回命名值的范围。
      ScriptContext getContext()
      返回默认 ScriptContext的的 ScriptEngine的Bindings,Reader和Writer被用于脚本执行时没有 ScriptContext指定。
      ScriptEngineFactory getFactory()
      返回 ScriptEngineFactory让全班这里面 ScriptEngine所属。
      void put​(String key, Object value)
      设置ScriptEngine状态中的键/值对,可以创建用于执行脚本的Java语言绑定,也可以以其他方式使用,具体取决于是否保留键。
      void setBindings​(Bindings bindings, int scope)
      设置脚本使用的命名值范围。
      void setContext​(ScriptContext context)
      设置默认 ScriptContext的的 ScriptEngine的Bindings,Reader和Writer被用于脚本执行时没有 ScriptContext指定。
    • 字段详细信息

      • ARGV

        static final String ARGV
        用于将位置参数数组传递给脚本的命名值的保留键。
        另请参见:
        常数字段值
      • FILENAME

        static final String FILENAME
        指定值的保留键,它是正在执行的文件的名称。
        另请参见:
        常数字段值
      • ENGINE

        static final String ENGINE
        指定值的保留键,该值是 ScriptEngine实现的名称。
        另请参见:
        常数字段值
      • ENGINE_VERSION

        static final String ENGINE_VERSION
        标识值的保留键,用于标识 ScriptEngine实现的版本。
        另请参见:
        常数字段值
      • NAME

        static final String NAME
        标识值的保留键,用于标识脚本语言的短名称。 该名称用于由ScriptEngineManager来定位ScriptEngine与在一个给定的名称getEngineByName方法。
        另请参见:
        常数字段值
      • LANGUAGE

        static final String LANGUAGE
        指定值的保留键,它是实现支持的脚本语言的全名。
        另请参见:
        常数字段值
      • LANGUAGE_VERSION

        static final String LANGUAGE_VERSION
        指定值的保留键,用于标识实现支持的脚本语言的版本。
        另请参见:
        常数字段值
    • 方法详细信息

      • eval

        Object eval​(String script,
                    ScriptContext context)
             throws ScriptException
        导致立即执行脚本,该脚本的源是作为第一个参数传递的String。 可以在执行之前重新编译或重新编译脚本。 从先前的执行中留在引擎中的状态,包括变量值和编译过程在执行期间可能是可见的。
        参数
        script - 脚本引擎要执行的脚本。
        context - 显示不同范围内的属性集的ScriptContext 示波器ScriptContext.GLOBAL_SCOPEScriptContext.ENGINE_SCOPE的含义在ScriptContext.ENGINE_SCOPE中定义。

        ENGINE_SCOPE Bindings ScriptContext包含脚本变量与在此脚本执行期间使用的应用程序对象的绑定。
        结果
        执行脚本返回的值。
        异常
        ScriptException - 如果脚本中发生错误。 ScriptEngines应该为底层脚本实现抛出的已检查异常创建并抛出ScriptException包装器。
        NullPointerException - 如果任一参数为null。
      • eval

        Object eval​(Reader reader,
                    ScriptContext context)
             throws ScriptException
        eval(String, ScriptContext)相同,其中脚本源是从 Reader读取的。
        参数
        reader - 脚本引擎要执行的脚本的源代码。
        context - 传递给脚本引擎的 ScriptContext
        结果
        执行脚本返回的值。
        异常
        ScriptException - 如果脚本中发生错误。 ScriptEngines应为底层脚本实现抛出的已检查异常创建并抛出ScriptException包装器。
        NullPointerException - 如果任一参数为null。
      • eval

        Object eval​(String script)
             throws ScriptException
        执行指定的脚本。 默认ScriptContextScriptEngine使用。
        参数
        script - 要执行的脚本语言源。
        结果
        执行脚本返回的值。
        异常
        ScriptException - 如果脚本中发生错误。 ScriptEngines应该为底层脚本实现抛出的已检查异常创建并抛出ScriptException包装器。
        NullPointerException - 如果参数为null。
      • eval

        Object eval​(Reader reader)
             throws ScriptException
        eval(String)相同,但脚本源是以 Reader提供的
        参数
        reader - 脚本的来源。
        结果
        脚本返回的值。
        异常
        ScriptException - 如果脚本中发生错误。 ScriptEngines应该为底层脚本实现抛出的已检查异常创建并抛出ScriptException包装器。
        NullPointerException - 如果参数为null。
      • eval

        Object eval​(String script,
                    Bindings n)
             throws ScriptException
        在脚本执行期间,使用Bindings参数作为ENGINE_SCOPE Bindings ScriptEngine执行脚本。 ReaderWriter和非ENGINE_SCOPE Bindings默认的ScriptContext使用。 ENGINE_SCOPE Bindings ScriptEngine未更改,其映射不会因脚本执行而改变。
        参数
        script - 脚本的源代码。
        n - 用于脚本执行的 Bindings属性。
        结果
        脚本返回的值。
        异常
        ScriptException - 如果脚本中发生错误。 ScriptEngines应该为底层脚本实现抛出的已检查异常创建并抛出ScriptException包装器。
        NullPointerException - 如果任一参数为null。
      • eval

        Object eval​(Reader reader,
                    Bindings n)
             throws ScriptException
        eval(String, Bindings)相同,但脚本源是以 Reader提供的。
        参数
        reader - 脚本的来源。
        n - 属性的 Bindings
        结果
        脚本返回的值。
        异常
        ScriptException - 如果脚本中发生错误。 ScriptEngines应该为底层脚本实现抛出的已检查异常创建并抛出ScriptException包装器。
        NullPointerException - 如果任一参数为null。
      • put

        void put​(String key,
                 Object value)
        设置ScriptEngine状态中的键/值对,可以创建用于执行脚本的Java语言绑定,也可以以其他方式使用,具体取决于是否保留键。 必须与getBindings(ScriptContext.ENGINE_SCOPE).put具有相同的效果。
        参数
        key - 要添加的命名值的名称
        value - 要添加的命名值的值。
        异常
        NullPointerException - 如果key为null。
        IllegalArgumentException - 如果key为空。
      • get

        Object get​(String key)
        检索在此引擎状态下设置的值。 该值可能是其中之一是使用设置setValue或状态的其他值ScriptEngine ,取决于实施。 必须与getBindings(ScriptContext.ENGINE_SCOPE).get具有相同的效果
        参数
        key - 要返回其值的键
        结果
        给定键的值
        异常
        NullPointerException - 如果key为null。
        IllegalArgumentException - 如果key为空。
      • getBindings

        Bindings getBindings​(int scope)
        返回命名值的范围。 可能的范围是:

        • ScriptContext.GLOBAL_SCOPE - 表示全局范围的命名值集。 如果这个ScriptEngine通过创建ScriptEngineManager ,那么经理在全球范围内绑定。 如果此null没有关联的全局作用域,则可能是ScriptEngine
        • ScriptContext.ENGINE_SCOPE - 表示此ScriptEngine的状态的一组命名值。 这些值通常在脚本中使用关联键作为变量名称可见。
        • 的范围内的任何其它值在默认定义ScriptContext的的ScriptEngine


        返回的Bindings实例必须与getBindings方法返回的实例相同,该方法在ScriptContext的默认值ScriptContext上使用相应参数ScriptEngine
        参数
        scope - ScriptContext.ENGINE_SCOPEScriptContext.GLOBAL_SCOPE ,指定要返回的Bindings ScriptContext实现可以定义其他范围。 如果默认ScriptContext的的ScriptEngine定义了额外的范围,任何人都可以通过获得相应Bindings
        结果
        具有指定范围的 Bindings
        异常
        IllegalArgumentException - 如果指定的范围无效
      • setBindings

        void setBindings​(Bindings bindings,
                         int scope)
        设置脚本使用的命名值范围。 可能的范围是:

        • ScriptContext.ENGINE_SCOPE -指定Bindings替换的引擎范围ScriptEngine
        • ScriptContext.GLOBAL_SCOPE - 指定的Bindings必须显示为GLOBAL_SCOPE
        • 的范围内的任何其它值在默认定义ScriptContext的的ScriptEngine


        该方法必须具有作为调用相同的效果setBindings的方法ScriptContext带有的相应值scope上的默认ScriptContext的的ScriptEngine
        参数
        bindings - 指定范围的 Bindings
        scope - 指定的范围。 无论是ScriptContext.ENGINE_SCOPEScriptContext.GLOBAL_SCOPE ,或范围的其他任何有效的价值。
        异常
        IllegalArgumentException - 如果范围无效
        NullPointerException - 如果绑定为null且范围为 ScriptContext.ENGINE_SCOPE
      • createBindings

        Bindings createBindings()
        返回未初始化的 Bindings
        结果
        A Bindings可用于替换此 ScriptEngine的状态。
      • getContext

        ScriptContext getContext()
        返回默认 ScriptContext的的 ScriptEngine的Bindings,Reader和Writer被用于脚本执行时没有 ScriptContext指定。
        结果
        ScriptContext的默认值 ScriptEngine
      • setContext

        void setContext​(ScriptContext context)
        设置默认 ScriptContext的的 ScriptEngine的Bindings,Reader和Writer被用于脚本执行时没有 ScriptContext指定。
        参数
        context - ScriptContext将替换 ScriptContext中的默认值 ScriptEngine
        异常
        NullPointerException - 如果context为null。
      • getFactory

        ScriptEngineFactory getFactory()
        返回 ScriptEngineFactory让全班这里面 ScriptEngine所属。
        结果
        ScriptEngineFactory