我想简化对调用Oracle数据库的Groovy脚本的执行。如何将ojdbc jar添加到默认的类路径,这样我可以运行,而不是如何在不使用-cp开关的情况下自动加载Groovy中的数据库jar?
groovy RunScript.groovy
groovy -cp ojdbc5.jar RunScript.groovy
我想简化对调用Oracle数据库的Groovy脚本的执行。如何将ojdbc jar添加到默认的类路径,这样我可以运行,而不是如何在不使用-cp开关的情况下自动加载Groovy中的数据库jar?
groovy RunScript.groovy
groovy -cp ojdbc5.jar RunScript.groovy
由斯科特·戴维斯,包括自动在./groovy/lib目录 JAR文件从Groovy的食谱总结:
.groovy/lib
您的登录目录取消$ {GROOVY_HOME} /conf/groovy-starter.conf中的以下行的注释
load !{user.home}/.groovy/lib/*.jar
复制要纳入到.groovy/lib
看来,对Groovy 1.5或更高版本,默认情况下(无需编辑的conf)得到这个,只是下降的罐子在罐子/ lib目录。
groovy
仅仅是Groovy的JAR,设置了Java类路径包装脚本。我想,你可以修改这个脚本来将路径添加到你自己的JAR中。
有几种方法可以做到这一点。您可以将jar添加到系统的CLASSPATH变量中。您可以在主目录中创建一个名为.groovy/lib的目录,并将jar放入其中。它将在运行时自动添加到您的类路径中。或者,你可以做到这一点的代码:
this.class.classLoader.rootLoader.addURL(new URL("file:///path to file"))
动态加载JAR不适用于我,除非我也动态地在JAR中实例化任何类。例如,如果MyClass在JAR中,我必须像这样构造它: def myObj = Class.forName(“com.whatever.MyClass”)。newInstance() 因此,最好包含JAR文件存放在groovy-starter.conf目录中的某个地方,除非有一种我不知道的解决方法。 – seansand 2010-04-30 16:06:24
您可以添加以下shebang到你的Groovy脚本的第一行:
#!/usr/bin/env groovy -cp ojdbc5.jar
然后,标志着可执行脚本:
chmod u+x RunScript.groovy
现在,通过本身运行该脚本将设置类路径自动。
./RunScript.groovy
不知道这是否会首选。有时候我宁愿使用java的“默认类加载器”。在这种情况下,我可以将jar放入jre/lib/ext中以自动加载到默认的类加载器。 – djangofan 2011-10-30 00:43:07