Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

Groovy has been designed to be very lightweight and easy to embed into any Java application system.

You can use

Error rendering macro 'link' : Link needs a name and a URL as arguments.
to embed any scripting language into your Java code; however Groovy offers a lighter weight and closer integration. There are two main approaches

Evaluate scripts or expressions using the shell

You can evaluate any expression or script in Groovy using the

Error rendering macro 'link' : Link needs a name and a URL as arguments.
.
The GroovyShell allows you to pass in and out variables via the
Error rendering macro 'link' : Link needs a name and a URL as arguments.
object.

Dynamically loading and running Groovy code inside Java

You can use the

Error rendering macro 'link' : Link needs a name and a URL as arguments.
to load classes dynamically into a Java program and execute them (or use them) directly.
The following Java code shows an example...

If you have an interface you wish to use which you implement in the Groovy script you can use it as follows

This works fine if the Groovy class implements the inferface MyInterface. myObject can from then on be used as every other Java object implementing MyInterface.

Runtime dependencies

As well as Java 1.4 and the Groovy jar we also depend at runtime on the ASM library constituted of four jars (asm-1.5.2.jar, asm-util-1.5.2.jar, asm-attrs-1.5.2.jar and asm-analysis-1.5.2). That's it. So just add these 5 jars to your classpath and away you go, you can happily embed Groovy into your application.

Alternatively, instead of several jars, you can use groovy-all-1.0-beta-x.jar included in the GROOVY_HOME/embeddable directory of your distribution: this jar contains both Groovy and ASM combined in a single and convenient archive.

Error rendering macro 'link' : Link needs a name and a URL as arguments.

  • No labels