常州酌乒文化传播有限公司

當前位置:

Java專業(yè)語言輔導:動態(tài)調(diào)用動態(tài)語言之Java腳本API(5)

發(fā)表時間:2015/8/28 11:38:48 來源:互聯(lián)網(wǎng) 點擊關注微信:關注中大網(wǎng)校微信
關注公眾號

ScriptEngine 接口

如前所述,代碼將使用 ScriptEngine 實例執(zhí)行腳本。腳本引擎充當腳本代碼和最后執(zhí)行代碼的底層語言解釋器或編譯器之間的中間程序。這樣,我們就不需要了解各個解釋器使用哪些類來執(zhí)行腳本。比如說,JRuby 腳本引擎可以將代碼傳遞給 JRuby 的 org.jruby.Ruby 類的一個實例,首先將腳本編譯成中間形式,然后再調(diào)用它計算腳本并處理返回值。腳本引擎實現(xiàn)隱藏了一些細節(jié),包括解釋器如何與 Java 代碼共享類定義、應用程序?qū)ο蠛洼斎?輸出流。

圖 1 顯示了應用程序、Java 腳本 API 和 ScriptEngine 實現(xiàn)、腳本語言解釋器之間的總體關系。我們可以看到,應用程序只依賴于腳本 API,它提供了 ScriptEngineManager 類和 ScriptEngine 接口。ScriptEngine 實現(xiàn)組件處理使用特定腳本語言解釋器的細節(jié)。

 

您可能會問:如何才能獲取腳本引擎實現(xiàn)和語言解釋器所需的 JAR 文件呢?最好的方法是在 java.net 上托管的開源 Scripting 項目中查找腳本引擎實現(xiàn)(請參閱 參考資料)。您可以在 java.net 上找到許多語言的腳本引擎實現(xiàn)和其他網(wǎng)站的鏈接。Scripting 項目還提供了各種鏈接,通過這些鏈接可以下載受支持的腳本語言的解釋器。

在 清單 1 中,main() 方法將 ScriptEngine 傳遞給各個方法用于計算該方法的 JavaScript 代碼。第一個方法如清單 2 所示。invokeHelloScript() 方法調(diào)用腳本引擎的 eval 方法計算和執(zhí)行 JavaScript 代碼中的特定字符串。ScriptEngine 接口定義了 6 個重載的 eval() 方法,用于將接收的腳本當作字符串或 java.io.Reader 對象計算,java.io.Reader 對象一般用于從外部源(例如文件)讀取腳本。

編輯推薦

JAVA認證考試報考指南 / 更多JAVA考試資料

(責任編輯:zyc)

2頁,當前第1頁  第一頁  前一頁  下一頁
最近更新 考試動態(tài) 更多>
布尔津县| 蒙城县| 柳林县| 黄龙县| 东乡县| 赣榆县| 泽库县| 乐清市| 屯门区| 高碑店市| 弋阳县| 富民县| 乌兰浩特市| 惠东县| 明溪县| 安乡县| 精河县| 垣曲县| 介休市| 汉寿县| 阳原县| 玉林市| 贵港市| 凤庆县| 阿尔山市| 通道| 舟曲县| 徐汇区| 垣曲县| 清徐县| 德昌县| 淅川县| 新疆| 绥芬河市| 广元市| 格尔木市| 平远县| 永福县| 衡山县| 隆德县| 商丘市|