14

以下 Groovy 脚本失败并出现java.lang.ClassNotFoundException: com.mysql.jdbc.Driver异常。

@Grapes([
    @Grab('mysql:mysql-connector-java:5.1.25')
])

import groovy.sql.Sql

def sql = Sql.newInstance(
    'jdbc:mysql://localhost/books', 
    'root',
    '', 
    'com.mysql.jdbc.Driver'
);

我查看了存储在的 JAR 文件C:\Users\Dusan\.groovy\grapes\mysql\mysql-connector-java\jars\mysql-connector-java-5.1.25.jar,它包含 Driver 类。

有什么问题?

4

2 回答 2

24

你需要:

@GrabConfig(systemClassLoader = true)

在您的@Grab 之后,只需:

@Grab('mysql:mysql-connector-java:5.1.25')
@GrabConfig(systemClassLoader = true)
import groovy.sql.Sql

def sql = Sql.newInstance(
    'jdbc:mysql://localhost/books', 
    'root',
    '', 
    'com.mysql.jdbc.Driver'
)

应该做

于 2013-08-03T19:24:28.303 回答
1

你如何在 groovysh 中使用它?

根据文档,Grab 以这种方式在 shell 中使用

groovy.grape.Grape.grab([group:'mysql:mysql-connector-java:5.1.25'])

我还没有找到 @GrabConfig 的等价物。它在 groovysh 中根本不起作用。

于 2014-04-01T23:20:15.190 回答