代码之家  ›  专栏  ›  技术社区  ›  ashkrosh

从Java(Groovy)类调用JavaScript函数

  •  9
  • ashkrosh  · 技术社区  · 16 年前

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

    谢谢,

    2 回复  |  直到 16 年前
        1
  •  8
  •   coobird    16 年前

    如其他答案所述,可以使用 Scripting API 作为 javax.script 包,可从Java 6获得。

    下面是一个执行少量javascript的groovy示例:

    import javax.script.*
    
    manager = new ScriptEngineManager()
    engine = manager.getEngineByName("JavaScript")
    
    javascriptString = """
    obj = {"value" : 42}
    print(obj["value"])
    """
    
    engine.eval(javascriptString)  // prints 42
    

    在使用脚本api时,不必调用浏览器来执行javascript,但应记住,浏览器特定的功能(可能与dom相关的功能)将不可用。

        2
  •  0
  •   Berislav Kovacki    16 年前

    你可以使用 Rhino JavaScript语言在Java中的实现。下面是 calling JavaScript function from java ,但您也可以从groovy中完成。