Groovy 的主要优势之一就是它的生产力。Groovy 代码通常要比 Java 代码更容易编写,而且编写起来也更快,这使得它有足够的资格成为开发工作包中的一个附件。在另一方面, Groovy 并不是而且也不打算成为Java 语言的替代,因为它还在成长中,还不够成熟。所以我们的目标是在Java调用Groovy,归纳起来主要有以下3个方法:
1.将Groovy文件编译成.class文件:编译是通过调用 groovyc 命令进行的,该命令将 Groovy 脚本编译成普通的 Java 兼容的 .class 文件,这样调用Groovy就和调用Java本身没什么两样了,值得一提的是groovy代码中的闭包会使得多生成一个.class文件。参见demo1演示。
2.利用Groovy类加载器:用 Groovy 的 GroovyClassLoader ,动态地加载一个脚本并执行它的行为。参见demo2演示。
3.更加动态的选择:使用 Groovy 优美的GroovyShell和 GroovyScriptEngine动态地执行 Groovy 脚本。分别参见demo31、demo32、demo32演示。
综上,个人看法是:嵌入简单的、易于编写的脚本,从而利用 Groovy 的简单性为Java服务,而不是替代Java,或者说为时还早。
备注:附件的Demo促成环境:Eclipse3.3+jdk1.6