Jdbc 如何检查@Grab是否装载了罐子?脚本抛出ClassNotFoundException
Groovy版本:2.0.8 我试图编写一个脚本,从私有maven存储库获取Oracle JDBC驱动程序(无需身份验证):Jdbc 如何检查@Grab是否装载了罐子?脚本抛出ClassNotFoundException,jdbc,groovy,Jdbc,Groovy,Groovy版本:2.0.8 我试图编写一个脚本,从私有maven存储库获取Oracle JDBC驱动程序(无需身份验证): 如何检查我的罐子是否已装入?目前我得到了java.lang.ClassNotFoundException:oracle.jdbc.driver.OracleDriver这可能是类加载器问题,请尝试添加@GrabConfig(systemClassLoader=true)如下: package main.groovy @GrabResolver(name='oracle'
如何检查我的罐子是否已装入?目前我得到了
java.lang.ClassNotFoundException:oracle.jdbc.driver.OracleDriver
这可能是类加载器问题,请尝试添加@GrabConfig(systemClassLoader=true)
如下:
package main.groovy
@GrabResolver(name='oracle', root='http://my-local-server:8082/maven/repo/')
@GrabConfig(systemClassLoader=true)
@Grab('com.oracle:oracle:11.1.0.7.0')
@Grab('com.oracle:i18n:10.2.0.5')
import groovy.sql.Sql
import java.sql.Connection
import java.sql.DriverManager
class FrameworkInspector {
static void main(String[] args) {
//NullPointerException
//this.class.classLoader.getURLs().each{
// ClassLoader.systemClassLoader.addURL(it);
//}
Class.forName("oracle.jdbc.driver.OracleDriver")
java.sql.Connection connection = DriverManager.getConnection(
"jdbc:oracle:thin:@ip:port:sid", "user", "pwd");
Sql sql = new Sql(connection)
println sql.firstRow("select * from dual")
}
}
这在groovy控制台中工作,但如果我运行Eclipse,我会得到“找不到适合grab的类加载器”。我需要在IDE中运行其他东西?@SérgioMichels这是Java 8还是OpenJDK?Grab在这些方面存在问题:-/对于一个“适当”的项目,我建议下载相关的JAR并将它们添加到类路径中(或者如果您正在进行gradle/maven构建,则将它们添加为
运行时
依赖项),然后继续。。。Grab对于快速脚本来说非常出色,但除此之外,我还是选择了老练的路线,我使用的是OracleJDK1.6.045。但是谢谢你的提示,我将继续在类路径中添加那些jar。
package main.groovy
@GrabResolver(name='oracle', root='http://my-local-server:8082/maven/repo/')
@GrabConfig(systemClassLoader=true)
@Grab('com.oracle:oracle:11.1.0.7.0')
@Grab('com.oracle:i18n:10.2.0.5')
import groovy.sql.Sql
import java.sql.Connection
import java.sql.DriverManager
class FrameworkInspector {
static void main(String[] args) {
//NullPointerException
//this.class.classLoader.getURLs().each{
// ClassLoader.systemClassLoader.addURL(it);
//}
Class.forName("oracle.jdbc.driver.OracleDriver")
java.sql.Connection connection = DriverManager.getConnection(
"jdbc:oracle:thin:@ip:port:sid", "user", "pwd");
Sql sql = new Sql(connection)
println sql.firstRow("select * from dual")
}
}