我已經在Rhino 1.7下使用Javascript編寫了一些腳本,其中一個腳本啓動了一個最小的http服務器並接受輸入中的JS命令。現在從腳本調用javascript解釋器
,如果我叫(從內部犀牛):
engine = ScriptEngineManager().getEngineByName("JavaScript");
我得到的內置JS引擎(從Java 1.6),這是犀牛的舊版本,並且缺少某些功能(如JavaAdapter的對多個接口)。
如何獲得Rhino引擎而不是?我需要ScriptEngineManager.getEngineFactories()還是其他什麼?
對不起冗餘,但是:「engine = ScriptEngineManager()...」是在你的JS中調用的嗎?哪個在Rhino 1.7中運行,但是返回默認的Java 6 JS腳本引擎而不是Rhino?爲什麼你需要在你的JS裏面有一個新的腳本引擎?或者你想獲得當前的引擎/爲什麼你需要引用JS中的當前引擎? – 2009-11-30 16:10:34
是的。我需要一個腳本來啓動另一個解釋器,以避免使用eval()。 第一個腳本啓動一個HTTP服務器,它爲單個頁面提供HTML表單。 POST方法向服務器發送命令或文件名,服務器端腳本執行代碼。 – 2009-12-01 11:19:57