Embedding Groovy in Java
0. Create some space where you can test everything
mkdir ~/groovy_and_java cd ~/groovy_and_java
1. Download most recent version of Groovy
curl "http://dist.groovy.codehaus.org/distributions \ /groovy-binary-2.0.4.zip" -o groovy-binary-2.0.4.zip unzip groovy-binary-2.0.4.zip
2. Create space for sample code
mkdir SampleCode cd SampleCode
3. Create two files
SimpleGroovyCall.java
import groovy.lang.GroovyClassLoader;
import groovy.lang.GroovyObject;
import java.io.File;
public class SimpleGroovyCall {
public static void main(String[] args) {
GroovyClassLoader loader = new GroovyClassLoader();
GroovyObject groovyObj = null;
try {
Class groovyClass =
loader.parseClass(new File("SimpleGroovyCode.groovy"));
groovyObj = (GroovyObject) groovyClass.newInstance();
} catch (Exception e) {
e.printStackTrace();
}
Object[] invokeArgs = {};
System.out.println(
groovyObj.invokeMethod("simple", invokeArgs));
}
}
SimpleGroovyCode.groovy
def simple() {
return "This is a simple call"
}
4. Compile the code
javac -cp ~/groovy_and_java/groovy-2.0.4 \ /lib/groovy-2.0.4.jar:. SimpleGroovyCall.java
5. Run the code
java -cp ~/grails/groovy-2.0.4 \ /lib/*:. SimpleGroovyCall
You can find more interesting examples in the book “Scripting in Java: Languages, Frameworks, and Patterns” by Dejan Bosanac
Source: Scripting in Java: Languages, Frameworks, and Patterns
Amazon (in Books): Scripting in Java: Languages, Frameworks, and Patterns
Amazon (Kindle): Scripting in Java: Languages, Frameworks, and Patterns