ScriptEngine.put 及其相關 get() 方法是在運行于腳本引擎中的 Java 代碼和腳本之間共享對象和數據的主要途徑。(有關這一方面的詳細論述,請參閱本文后面的 Script-execution scope 一節。)當我們調用引擎的 put() 方法時,腳本引擎會將第二個參數(任何 Java 對象)關聯到特定的字符串關鍵字。大多數腳本引擎都是讓腳本使用特定的變量名稱來訪問 Java 對象。腳本引擎可以隨意對待傳遞給 put() 方法的名稱。比如說,JRuby 腳本引擎讓 Ruby 代碼使用全局 $helloScriptingWorld 對象訪問 helloScriptingWorld,以符合 Ruby 全局變量的語法。
腳本引擎的 get() 方法檢索腳本環境中可用的值。一般而言,Java 代碼通過 get() 方法可以訪問腳本環境中的所有全局變量和函數。但是只有明確使用 put() 與腳本共享的 Java 對象才可以被腳本訪問。
外部腳本在運行著的應用程序中訪問和操作 Java 對象的這種功能是擴展 Java 程序功能的一項強有力的技巧。(第 2 部分將通過示例研究這一技巧)。
運行 HelloScriptingWorld 應用程序
您可以通過下載和構建源代碼來運行 HelloScriptingWorld 應用程序。此 .zip 中文件含有一個 Ant 腳本和一個 Maven 構建腳本,可以幫助大家編譯和運行示例應用程序。請執行以下步驟: