Jdbc 如何检查@Grab是否装载了罐子?脚本抛出ClassNotFoundException

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'

Groovy版本:2.0.8

我试图编写一个脚本,从私有maven存储库获取Oracle JDBC驱动程序(无需身份验证):


如何检查我的罐子是否已装入?目前我得到了
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")

    }
}