在 Java 中使用其他指令碼語言

Java Scripting API 使外部指令碼能夠與 Java 互動

Scripting API 可以啟用指令碼和 java 之間的互動。指令碼語言必須在類路徑上具有指令碼引擎的實現。

預設情況下,nashorn 提供 JavaScript(也稱為 ECMAScript)。每個指令碼引擎都有一個指令碼上下文,其中所有變數,函式和方法都儲存在繫結中。有時你可能希望使用多個上下文,因為它們支援將輸出重定向到緩衝的 Writer 並將錯誤重定向到另一個。

還有許多其他指令碼引擎庫,如 Jython 和 JRuby。只要它們在類路徑上,你就可以使用 eval 程式碼。

我們可以使用繫結將變數公開到指令碼中。在某些情況下我們需要多個繫結,因為向引擎公開變數基本上只是將變數暴露給那個引擎,有時我們需要暴露某些變數,如系統環境和路徑,這些變數對於同一型別的所有引擎都是相同的。在這種情況下,我們需要一個全域性範圍的繫結。公開變數,將其公開給同一 EngineFactory 建立的所有指令碼引擎