JavaTM 2 Platform
Standard Ed. 6

javax.script
類別 ScriptEngineManager

java.lang.Object
  繼承者 javax.script.ScriptEngineManager

public class ScriptEngineManager
extends Object

ScriptEngineManagerScriptEngine 類別實作一個發現和實例化機制,還維護一個鍵/值對集合來存儲所有 Manager 創建的引擎所共享的狀態。此類別使用服務提供者機制列舉所有的 ScriptEngineFactory 實作。

ScriptEngineManager 提供了一個方法,可以返回一個所有處理器實作和基於語言名稱、檔案擴展名和 mime 型別尋找處理器的實用方法所組成的陣列。

鍵/值對的 Bindings(即由管理器維護的 "Global Scope")對於 ScriptEngineManager 創建的所有 ScriptEngine 實例都是可用的。Bindings 中的值通常公開於所有文稿中。

從以下版本開始:
1.6

建構子摘要
ScriptEngineManager()
          如果調用者可存取執行緒上下文 ClassLoader,則調用此建構子的效果與調用 ScriptEngineManager(Thread.currentThread().getContextClassLoader()) 相同。
ScriptEngineManager(ClassLoader loader)
          此建構子使用服務調用者機制載入對於給定 ClassLoader 可見的 ScriptEngineFactory 實作。
 
方法摘要
 Object get(String key)
          獲取 Global Scope 中指定鍵的值。
 Bindings getBindings()
          getBindings 返回 globalScope 欄位的值。
 ScriptEngine getEngineByExtension(String extension)
          尋找並創建一個給定擴展的 ScriptEngine
 ScriptEngine getEngineByMimeType(String mimeType)
          尋找並創建一個給定 mime 型別的 ScriptEngine
 ScriptEngine getEngineByName(String shortName)
          尋找並創建一個給定名稱的 ScriptEngine
 List<ScriptEngineFactory> getEngineFactories()
          返回一個陣列,該陣列的元素是發現機制找到的所有 ScriptEngineFactory 類別的實例。
 void put(String key, Object value)
          設置 Global Scope 中指定的鍵/值對。
 void registerEngineExtension(String extension, ScriptEngineFactory factory)
          註冊一個 ScriptEngineFactory 來處理擴展。
 void registerEngineMimeType(String type, ScriptEngineFactory factory)
          註冊一個 ScriptEngineFactory 來處理 mime 型別。
 void registerEngineName(String name, ScriptEngineFactory factory)
          註冊一個 ScriptEngineFactory 來處理語言名稱。
 void setBindings(Bindings bindings)
          setBindings 存儲 globalScope 欄位中的指定 Bindings
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

ScriptEngineManager

public ScriptEngineManager()
如果調用者可存取執行緒上下文 ClassLoader,則調用此建構子的效果與調用 ScriptEngineManager(Thread.currentThread().getContextClassLoader()) 相同。否則,效果與調用 ScriptEngineManager(null) 相同。

另請參見:
Thread.getContextClassLoader()

ScriptEngineManager

public ScriptEngineManager(ClassLoader loader)
此建構子使用服務調用者機制載入對於給定 ClassLoader 可見的 ScriptEngineFactory 實作。

如果 loader 為 null,則載入與平臺打包在一起的文稿引擎處理器,以及常用擴展目錄(已安裝的擴展)中的文稿引擎處理器。

參數:
loader - 用來發現文稿引擎處理器的 ClassLoader。
方法詳細資訊

setBindings

public void setBindings(Bindings bindings)
setBindings 存儲 globalScope 欄位中的指定 Bindings。ScriptEngineManager 將此 Bindings 設置為由它創建的 ScriptEngine 物件的全體 bindings。

參數:
bindings - 指定的 Bindings
拋出:
IllegalArgumentException - 如果 bindings 為 null。

getBindings

public Bindings getBindings()
getBindings 返回 globalScope 欄位的值。ScriptEngineManager 將此 Bindings 設置為由它創建的 ScriptEngine 物件的全體 bindings。

返回:
globalScope 欄位。

put

public void put(String key,
                Object value)
設置 Global Scope 中指定的鍵/值對。

參數:
key - 要設置的鍵
value - 要設置的值。
拋出:
NullPointerException - 如果 key 為 null。
IllegalArgumentException - 如果 key 為空字元串。

get

public Object get(String key)
獲取 Global Scope 中指定鍵的值。

參數:
key - 將返回其值的鍵。
返回:
指定鍵的值。

getEngineByName

public ScriptEngine getEngineByName(String shortName)
尋找並創建一個給定名稱的 ScriptEngine。該演算法首先尋找一個 ScriptEngineFactory,該 ScriptEngineFactory 已經針對給定名稱使用 registerEngineName 方法註冊為處理程序。

如果沒有找到這樣的 ScriptEngineFactory,則搜尋建構子存儲的 ScriptEngineFactory 實例陣列,以獲得具有指定名稱的 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。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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