从Java(Groovy)类调用javascript函数

时间:2010-04-24 12:16:20

标签: java javascript groovy

我有一个javascript函数(非常大的!),我需要它在Java(Groovy)类中的功能。这是一个简单的日历转换器。我可以在groovy中重写它,但只是想知道是否可以从java(groovy)方法调用javascript函数?我想像selenium和Canoo这样的功能测试库应该有这样的东西,对吗? PS:我不想唤醒现实世界的浏览器以使用它的JS运行时环境。

谢谢,

2 个答案:

答案 0 :(得分:8)

如其他答案中所述,可以使用Scripting API作为{6}}包提供的一部分提供的javax.script

以下是一个Groovy示例,它执行一些Javascript:

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

答案 1 :(得分:0)

您可以使用Rhino,这是Java中JavaScript语言的一种实现。以下是calling JavaScript function from java的示例,但您也可以从groovy中执行此操作。