2010-04-24 24 views
8

Bir Java (Groovy) sınıfında işlevselliğe gereksinim duyduğum bir javascript işlevim var (çok büyük bir!). Basit bir takvim çevirici. Ben groovy yeniden yazabilirsiniz ama sadece bir java (groovy) yönteminden javascript işlevi çağırmak mümkün olup olmadığını bilmek istiyorum? Selenyum ve Canoo gibi fonksiyonel test kütüphanelerinin böyle bir şeye sahip olması gerektiğini düşünüyorum, doğru muyum? PS: JS çalışma zamanı özelliğini kullanmak için gerçek dünyadaki bir tarayıcıyı uyandırmak istemiyorum.Java (Groovy) sınıfının javascript işlevini çağırın

sayesinde

cevap

8

, JavaScript biraz yürüten gelenekselleşmiş bir örnek, aşağıdaki

Java 6 edinilebilir javax.script paketinin bir parçası olarak temin Scripting API, kullanmak mümkündür:

import javax.script.* 

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

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

engine.eval(javascriptString) // prints 42 

komut dosyası API kullanırken Javascript yürütmek için bir tarayıcı çağırmak için gerekli değildir, ama bir o tarayıcıya özel özellikler (muhtemelen DOM ile ilgili işlevler) mevcut olmayacaktır akılda tutmalıdır.

İlgili konular