我想簡化對調用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