2010-04-24 62 views
8

我有一個JavaScript函數(非常大的!),我需要它在Java(Groovy)類中的功能。這是一個簡單的日曆轉換器。我可以在groovy中重寫它,但只是想知道是否可以從java(groovy)方法調用javascript函數?我猜想像硒和Canoo這樣的功能測試庫應該有這樣的東西,我說得對嗎? PS:我不想喚醒真實世界的瀏覽器以使用它的JS運行環境。從Java(Groovy)類調用JavaScript函數

感謝,

回答

8

如在其他的答案提到的,可以使用作爲javax.script包的一部分提供的Scripting API,購自爪哇6.

以下是執行Java腳本的一點點一個Groovy例如:

import javax.script.* 

manager = new ScriptEngineManager() 
engine = manager.getEngineByName("JavaScript") 

javascriptString = """ 
obj = {"value" : 42} 
print(obj["value"]) 
""" 

engine.eval(javascriptString) // prints 42 

當使用Scripting API時,沒有必要調用瀏覽器來執行Javascript,但應該記住瀏覽器特有的功能(可能與DOM相關的功能)將不可用。