私はGroovyでスクリプトを書いています。私は誰かが./myscript.groovy
を実行するだけでそれを実行できるようにしたいと思います。ただし、このスクリプトには第三者のライブラリ(MySQL JDBC)が必要ですが、-classpath
または-cp
引数を使用する以外にスクリプトにこれを提供する方法はわかりません。私はここに行かない理由からgroovyスクリプトのクラスパス
`./monitor-vouchers.groovy -cp /path/to/mysql-lib.jar`
、それは-classpath/-cp引数を使用してスクリプトにJARの場所を提供するために、実際にはできません。スクリプト自体の中からJARをロードできる方法はありますか?私は@Grab
import groovy.sql.Sql
@Grab(group='mysql', module='mysql-connector-java', version='5.1.19')
def getConnection() {
def dbUrl = 'jdbc:mysql://database1.c5vveqm7rqgx.eu-west-1.rds.amazonaws.com:3306/vouchers_prod'
def dbUser = 'pucaroot'
def dbPassword = 'password'
def driverClass = "com.mysql.jdbc.Driver"
return Sql.newInstance(dbUrl, dbUser, dbPassword, driverClass)
}
getConnection().class
を使用してみました。しかし、これは次のエラー発生します
Caught: java.sql.SQLException: No suitable driver
java.sql.SQLException: No suitable driver
at monitor-vouchers.getConnection(monitor-vouchers.groovy:13)
at monitor-vouchers.run(monitor-vouchers.groovy:17)
は、私はちょうど./monitor-vouchers.groovy
あなたがあなたのクラスパスにあるかを確認したい場合は、この 'this.class.classLoader.rootLoader.URLs.eachを{実行println it} ' - 私のために、〜/ .groovy/libがそこにないようです。 – MarkHu