繁体   English   中英

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

[英]How do I auto load a database jar in Groovy without using the -cp switch?

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

groovy RunScript.groovy

代替:

groovy -cp ojdbc5.jar RunScript.groovy

总结自Groovy Recipes ,作者 Scott Davis,自动将 JAR 包含在 ./groovy/lib 目录中

  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"))

一种方法是在代码中使用@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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM