我想简化调用 Oracle 数据库的 Groovy 脚本的执行。如何将 ojdbc jar 添加到默认类路径以便我可以运行:
groovy RunScript.groovy
代替:
groovy -cp ojdbc5.jar RunScript.groovy
从Groovy Recipes中总结,作者 Scott Davis,在 ./groovy/lib 目录中自动包含 JAR:
.groovy/lib
在您的登录目录中创建取消注释 ${GROOVY_HOME}/conf/groovy-starter.conf 中的以下行
load !{user.home}/.groovy/lib/*.jar
将要包含的 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"))
一种方法是在代码中使用@Grab:
@GrabConfig(systemClassLoader=true)
@Grab('com.oracle:ojdbc6:12.1.0.2.0')
Class.forName("oracle.jdbc.OracleDriver").newInstance()
groovy
只是设置 Java 类路径的 Groovy JAR 的包装脚本。我想您也可以修改该脚本以将路径添加到您自己的 JAR 中。
您可以将以下shebang添加到 Groovy 脚本的第一行:
#!/usr/bin/env groovy -cp ojdbc5.jar
然后,标记脚本可执行文件:
chmod u+x RunScript.groovy
现在,单独运行脚本将自动设置类路径。
./RunScript.groovy