如何在不使用-cp开关的情况下在Groovy中自动加载数据库jar?

我想简化我对执行Oracle数据库调用的Groovy脚本的执行。 如何将ojdbc jar添加到默认的类路径中,以便我可以运行:

groovy RunScript.groovy 

代替:

 groovy -cp ojdbc5.jar RunScript.groovy 

摘自Scott Davis的Groovy Recipes在./groovy/lib目录中自动包含JAR

  1. 在您的登录目录中创建.groovy/lib
  2. 取消注释$ {GROOVY_HOME} /conf/groovy-starter.conf中的以下行

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

  3. 将您想要包含的jar复制到.groovy/lib

看来,对于Groovy 1.5或更高版本,默认情况下你会得到这个(不需要编辑conf),只需将jar放在/ lib目录中即可。

有几种方法可以做到这一点。 您可以将jar添加到系统的CLASSPATH变量中。 您可以在主目录中创建一个名为.groovy / lib的目录,然后将jar放在那里。 它将在运行时自动添加到类路径中。 或者,您可以在代码中执行此操作:

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

groovy只是设置Java类路径的Groovy JAR的包装脚本。 我想你可以修改那个脚本来添加你自己的JAR的路径。

您可以将以下shebang添加到Groovy脚本的第一行:

 #!/usr/bin/env groovy -cp ojdbc5.jar 

然后,标记脚本可执行文件:

 chmod u+x RunScript.groovy 

现在,单独运行脚本将自动设置类路径。

 ./RunScript.groovy