JavaTM 2 Platform
Standard Ed. 6

javax.script
介面 ScriptEngine

所有已知實作類別:
AbstractScriptEngine

public interface ScriptEngine

ScriptEngine 是基礎介面,該介面的方法在此規範的每個實作中都必須具有完整的功能。

這些方法提供基本的文稿功能。為這個簡單介面編寫的應用程序應該對每個實作稍做修改就能夠運行。這包括執行文稿的方法,以及設置和獲取值的方法。

這些值是兩種型別的鍵/值對。組成第一種型別的鍵/值對中的鍵是此規範或個別實作中保留和定義的鍵。包含保留鍵的鍵/值對中的值具有指定的含義。

另一種型別由那些創建 Java 語言 Bindings 的鍵/值對組成,值通常通過相應鍵或其裝飾的形式用文稿表示。

從以下版本開始:
1.6

欄位摘要
static String ARGV
          指定值的保留鍵,它將一個位置參數陣列傳遞給某一文稿。
static String ENGINE
          指定值的保留鍵,它是 ScriptEngine 實作的名稱。
static String ENGINE_VERSION
          指定值的保留鍵,它標識 ScriptEngine 實作的版本。
static String FILENAME
          指定值的保留鍵,它是將被執行的檔案的名稱。
static String LANGUAGE
          指定值的保留鍵,它是受實作支持的 Scripting Language 的完全名稱。
static String LANGUAGE_VERSION
          指定值的保留鍵,它標識受實作支持的文稿語言的版本。
static String NAME
          指定值的保留鍵,它標識文稿語言的短名稱。
 
方法摘要
 Bindings createBindings()
          返回一個未初始化的 Bindings
 Object eval(Reader reader)
          除了文稿的源是以 Reader 形式提供的外,與 eval(String) 相同。
 Object eval(Reader reader, Bindings n)
          除了文稿的源是以 Reader 形式提供的外,與 eval(String, Bindings) 相同。
 Object eval(Reader reader, ScriptContext context)
          與 eval(String, ScriptContext) 相同,其中文稿的源是從 Reader 讀取的。
 Object eval(String script)
          執行指定的文稿。
 Object eval(String script, Bindings n)
          執行文稿,文稿執行期間使用 Bindings 參數作為 ScriptEngineENGINE_SCOPE Bindings
 Object eval(String script, ScriptContext context)
          立即執行文稿,該文稿的源是作為第一個參數傳遞的 String。
 Object get(String key)
          獲取在此引擎的狀態中設置的值。
 Bindings getBindings(int scope)
          返回指定值的範圍。
 ScriptContext getContext()
          返回 ScriptEngine 的預設 ScriptContext,在沒有指定 ScriptContext 時,該 ScriptEngine 的 Bindings、Reader 和 Writer 被用於文稿執行。
 ScriptEngineFactory getFactory()
          返回此 ScriptEngine 所屬的類別的 ScriptEngineFactory
 void put(String key, Object value)
          設置 ScriptEngine 的狀態中的鍵/值對,它創建一個將在文稿執行中使用或者以其他方式使用的 Java Language Binding,具體取決於該鍵是否被保留。
 void setBindings(Bindings bindings, int scope)
          設置將由文稿使用的指定值的範圍。
 void setContext(ScriptContext context)
          設置 ScriptEngine 的預設 ScriptContext,在沒有指定 ScriptContext 時,該 ScriptEngine 的 Bindings、Reader 和 Writer 被用於文稿執行。
 

欄位詳細資訊

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 使用該名稱尋找具有 getEngineByName 方法中的給定名稱的 ScriptEngine

另請參見:
常數欄位值

LANGUAGE

static final String LANGUAGE
指定值的保留鍵,它是受實作支持的 Scripting 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 的含義。

ScriptContextENGINE_SCOPE Bindings 套件含將在此文稿執行期間使用的應用程序物件文稿變數的 bindings。
返回:
執行文稿所返回的值。
拋出:
ScriptException - 如果文稿發生錯誤。對於底層文稿實作拋出的經過檢查的 Exception,ScriptEngine 應該創建並拋出 ScriptException 套件裝器。
NullPointerException - 如果任一參數為 null。

eval

Object eval(Reader reader,
            ScriptContext context)
            throws ScriptException
eval(String, ScriptContext) 相同,其中文稿的源是從 Reader 讀取的。

參數:
reader - 將由文稿引擎執行的文稿的源。
context - 傳遞給文稿引擎的 ScriptContext
返回:
執行文稿所返回的值。
拋出:
ScriptException - 如果文稿發生錯誤。
NullPointerException - 如果任一參數為 null。

eval

Object eval(String script)
            throws ScriptException
執行指定的文稿。使用 ScriptEngine 的預設 ScriptContext

參數:
script - 要執行的文稿語言源。
返回:
執行文稿所返回的值。
拋出:
ScriptException - 如果文稿發生錯誤。
NullPointerException - 如果參數為 null。

eval

Object eval(Reader reader)
            throws ScriptException
除了文稿的源是以 Reader 形式提供的外,與 eval(String) 相同。

參數:
reader - 文稿的源。
返回:
文稿返回的值。
拋出:
ScriptException - 如果文稿發生錯誤。
NullPointerException - 如果參數為 null。

eval

Object eval(String script,
            Bindings n)
            throws ScriptException
執行文稿,文稿執行期間使用 Bindings 參數作為 ScriptEngineENGINE_SCOPE Bindings。使用預設 ScriptContextReaderWriter 和非 ENGINE_SCOPE BindingsScriptEngineENGINE_SCOPE Bindings 不變,其映射關係不隨文稿執行發生改變。

參數:
script - 文稿的源。
n - 將用於文稿執行的屬性的 Bindings
返回:
文稿返回的值。
拋出:
ScriptException - 如果文稿發生錯誤。
NullPointerException - 如果任一參數為 null。

eval

Object eval(Reader reader,
            Bindings n)
            throws ScriptException
除了文稿的源是以 Reader 形式提供的外,與 eval(String, Bindings) 相同。

參數:
reader - 文稿的源。
n - 屬性的 Bindings
返回:
文稿返回的值。
拋出:
ScriptException - 如果發生錯誤。
NullPointerException - 如果任一參數為 null。

put

void put(String key,
         Object value)
設置 ScriptEngine 的狀態中的鍵/值對,它創建一個將在文稿執行中使用或者以其他方式使用的 Java Language Binding,具體取決於該鍵是否被保留。必須與 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)
返回指定值的範圍。可能的範圍有:



返回的 Bindings 實例必須與對 ScriptEngine 的預設 ScriptContext 調用 ScriptContextgetBindings 方法(使用相應參數)所返回的實例一樣。

參數:
scope - ScriptContext.ENGINE_SCOPEScriptContext.GLOBAL_SCOPE,指定要返回的 BindingsScriptContext 的實作可以定義其他範圍。如果 ScriptEngine 的預設 ScriptContext 定義了其他範圍,則這些範圍都可以傳遞給該參數,以獲取相應的 Bindings
返回:
指定範圍的 Bindings
拋出:
IllegalArgumentException - 如果指定範圍無效

setBindings

void setBindings(Bindings bindings,
                 int scope)
設置將由文稿使用的指定值的範圍。可能的範圍有:



該方法必須與對 ScriptEngine 的預設 ScriptContext 調用 ScriptContextsetBindings 方法(使用 scope 的相應值)的效果相同。

參數:
bindings - 指定範圍的 Bindings
scope - 指定的範圍。ScriptContext.ENGINE_SCOPEScriptContext.GLOBAL_SCOPE 或者其他有效範圍值。
拋出:
IllegalArgumentException - 如果 scope 有效
NullPointerException - 如果 bindings 為 null 並且 scope 為 ScriptContext.ENGINE_SCOPE

createBindings

Bindings createBindings()
返回一個未初始化的 Bindings

返回:
用來替代此 ScriptEngine 狀態的 Bindings

getContext

ScriptContext getContext()
返回 ScriptEngine 的預設 ScriptContext,在沒有指定 ScriptContext 時,該 ScriptEngine 的 Bindings、Reader 和 Writer 被用於文稿執行。

返回:
ScriptEngine 的預設 ScriptContext

setContext

void setContext(ScriptContext context)
設置 ScriptEngine 的預設 ScriptContext,在沒有指定 ScriptContext 時,該 ScriptEngine 的 Bindings、Reader 和 Writer 被用於文稿執行。

參數:
context - 將替代 ScriptEngine 中預設 ScriptContextScriptContext
拋出:
NullPointerException - 如果 context 為 null。

getFactory

ScriptEngineFactory getFactory()
返回此 ScriptEngine 所屬的類別的 ScriptEngineFactory

返回:
ScriptEngineFactory

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only