2010-04-24 26 views
8

Tengo una función javascript (¡muy grande!) Que necesito su funcionalidad en una clase Java (Groovy). Es un simple convertidor de calendario. Puedo reescribirlo en groovy pero solo quiero saber si es posible llamar a la función javascript desde un método java (groovy). Supongo que las bibliotecas de pruebas funcionales como el selenio y Canoo deberían tener algo como esto, ¿verdad? PD: No quiero activar un navegador del mundo real para utilizar su env de tiempo de ejecución JS.Llamar a la función javascript de la clase Java (Groovy)

Gracias,

Respuesta

8

Como se mencionó en las otras respuestas, es posible utilizar el Scripting API proporcionado como parte del paquete javax.script, disponible a partir de Java 6.

El siguiente es un ejemplo maravilloso que ejecuta un poco de Javascript:

import javax.script.* 

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

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

engine.eval(javascriptString) // prints 42 

No es necesario llamar a un navegador para ejecutar Javascript cuando se utiliza la API de scripts, pero hay que tener en cuenta que las funciones específicas del navegador (probablemente las funcionalidades relacionadas con DOM) no estarán disponibles.

Cuestiones relacionadas