2010-04-24 64 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相关的功能)将不可用。