views:

1513

answers:

3

I want to simplify my execution of a Groovy script that makes calls to an Oracle database. How do I add the ojdbc jar to the default classpath so that I can run

groovy RunScript.groovy

instead of

groovy -cp ojdbc5.jar RunScript.groovy
A: 

groovy is just a wrapper script for the Groovy JAR that sets up the Java classpath. You could modify that script to add the path to your own JAR, as well, I suppose.

mipadi
+3  A: 

There are a few ways to do it. You can add the jar to your system's CLASSPATH variable. You can create a directory called .groovy/lib in your home directory and put the jar in there. It will be automatically added to your classpath at runtime. Or, you can do it in code.

this.class.classLoader.rootLoader.addURL(new URL("file:///path to file"))

Joey Gibson
Loading the JAR dynamically doesn't work for me unless I also instantiate any classes within the JAR dynamically as well. For example, if MyClass is in the JAR, I have to construct it like this:def myObj = Class.forName("com.whatever.MyClass").newInstance()Thus, it's way better just to include the JAR file somewhere within the groovy-starter.conf directories, unless there's a way around this that I don't know about.
seansand
+3  A: 

Summarized from Groovy Recipes, by Scott Davis, Automatically Including JARs in the ./groovy/lib Directory:

  1. Create .groovy/lib in your login directory
  2. Uncomment the following line in ${GROOVY_HOME}/conf/groovy-starter.conf

    load !{user.home}/.groovy/lib/*.jar

  3. Copy the jars you want included to .groovy/lib

It appears that for Groovy 1.5 or later you get this by default (no need to edit the conf), just drop the jars in the /lib dir.

Ken Gentle