pom.xml
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.1.6</version>
</dependency>
public static void main(String[] args) throws ScriptException, NoSuchMethodException{
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("groovy");
String fact = "def factorial(n, msg) { println(msg);return n == 1 ? 1 : n * factorial(n - 1, msg);}";
engine.eval(fact);
Invocable inv = (Invocable) engine;
Object[] params = { new Integer(5),"ssss"};
Object result = inv.invokeFunction("factorial", params);
System.out.println(result);
Bindings binding = engine.createBindings();
binding.put("date", new Date());
engine.eval("def getTime(){return date.getTime();}",binding);
engine.eval("def sayHello(name,age){return 'Hello,I am ' + name + ',age ' + age;}");
Object time = inv.invokeFunction("getTime", null);
System.out.println((Long) time);
String message = (String)inv.invokeFunction("sayHello", "zhangsan",new Integer(12));
System.out.println(message);
}
# ssss
# ssss
# ssss
# ssss
# ssss
# 120
# 1461054556546
# Hello,I am zhangsan,age12
本文通过一个Groovy脚本示例展示了如何使用Java的ScriptEngineManager来执行Groovy代码,包括定义函数、调用函数及操作日期等。通过这个示例可以了解Groovy的基本语法和与Java集成的方法。
1万+

被折叠的 条评论
为什么被折叠?



