Module  java.scripting
软件包  javax.script

Interface ScriptEngine

  • 所有已知实现类:
    AbstractScriptEngineNashornScriptEngine


    public interface ScriptEngine
    ScriptEngine是基本接口,其方法必须在本规范的每个实现中都具有完全的功能。

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

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

    另一种类型的对由创建Java语言绑定的对组成,这些值通常由脚本中的相应键或其装饰形式表示。
    从以下版本开始:
    1.6
    • Field Summary

      Fields  
      Modifier and Type Field 描述
      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
      用于标识脚本语言的短名称的命名值的保留键。
    • 方法摘要

      所有方法  接口方法  抽象方法 
      Modifier and Type 方法 描述
      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 BindingsScriptEngine执行脚本。
      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​()
      为这个 ScriptEngine所属的类返回一个 ScriptEngineFactory
      void put​(String key, Object value)
      在ScriptEngine的状态下设置一个键/值对,可以创建一个Java语言绑定,以便在执行脚本时使用,或者以其他方式使用,具体取决于该键是否被保留。
      void setBindings​(Bindings bindings, int scope)
      设置脚本使用的命名值的范围。
      void setContext​(ScriptContext context)
      设置当未指定 ScriptContext时,其绑定,读取器和作者用于脚本执行的 ScriptEngine的默认值 ScriptContext
    • 字段详细信息

      • ARGV

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

        static final String FILENAME
        作为正在执行的文件的名称的命名值的保留键。
        另请参见:
        Constant Field Values
      • ENGINE_VERSION

        static final String ENGINE_VERSION
        用于标识 ScriptEngine实现版本的命名值的保留键。
        另请参见:
        Constant Field Values
      • NAME

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

        static final String LANGUAGE
        作为实现支持的脚本语言的全名的命名值的保留键。
        另请参见:
        Constant Field Values
      • LANGUAGE_VERSION

        static final String LANGUAGE_VERSION
        用于标识实现支持的脚本语言版本的命名值的保留键。
        另请参见:
        Constant Field Values
    • 方法详细信息

      • eval

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

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

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

        Object eval​(String script)
             throws ScriptException
        执行指定的脚本。 使用ScriptContext的默认ScriptContext ScriptEngine
        参数
        script - 要执行的脚本语言源。
        结果
        从执行脚本返回的值。
        异常
        ScriptException - 脚本中是否出现错误。 ScriptEngines应该创建并抛出ScriptException包装器,用于基础脚本实现抛出的检查的异常。
        NullPointerException - 如果参数为空。
      • 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 BindingsScriptEngine未更改,并且其映射不受脚本执行的影响。
        参数
        script - 脚本的来源。
        n - 要用于脚本执行的属性的 Bindings
        结果
        脚本返回的值。
        异常
        ScriptException - 脚本中是否发生错误。 ScriptEngines应该创建并抛出ScriptException包装器用于基础脚本实现抛出的已检查的异常。
        NullPointerException - 如果任一参数为空。
      • eval

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

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

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


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

        Bindings createBindings​()
        返回未初始化的 Bindings
        结果
        A Bindings可以用来替换这个 ScriptEngine的状态。
      • getContext

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

        void setContext​(ScriptContext context)
        设置 ScriptContext的默认 ScriptContextScriptEngine ,当未指定 ScriptContext时,其绑定,读取器和作者用于脚本执行。
        参数
        context - A ScriptContext将替代 ScriptContext中的默认值 ScriptEngine
        异常
        NullPointerException - 如果上下文为空。
      • getFactory

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