Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Jenkins管道抛出java.lang.ClassNotFoundException:com.mysql.jdbc.Driver?_Java_Mysql_Jenkins_Jdbc - Fatal编程技术网

为什么Jenkins管道抛出java.lang.ClassNotFoundException:com.mysql.jdbc.Driver?

为什么Jenkins管道抛出java.lang.ClassNotFoundException:com.mysql.jdbc.Driver?,java,mysql,jenkins,jdbc,Java,Mysql,Jenkins,Jdbc,Jenkins管道引发的异常 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 我已经安装了数据库插件和MySQL数据库插件 但我还是得到了这个例外 管道代码: import groovy.sql.Sql node('master'){ Class.forName("com.mysql.jdbc.Driver") def sql = Sql.newInstance("jdbc:mysql://10.10.115.3

Jenkins管道引发的异常

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
我已经安装了数据库插件MySQL数据库插件

但我还是得到了这个例外

管道代码:

import groovy.sql.Sql

node('master'){
    Class.forName("com.mysql.jdbc.Driver")
    def sql = Sql.newInstance("jdbc:mysql://10.10.115.38:3306/test", "root","123456", "com.mysql.jdbc.Driver")
    def rows = sql.execute "select count(*) from test;"
    echo rows.dump()
}
异常消息:

 Running on Jenkins in /var/jenkins_home/workspace/test-jdbc
 [Pipeline] {
 [Pipeline] }
 [Pipeline] // node
 [Pipeline] End of Pipeline
 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:419)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:352)

我使用的是Jenkins 2.222.1版

之所以这样
java.lang.ClassNotFoundException:com.mysql.jdbc.Driver
,是因为缺少mysql连接器/J jar

注意:如果您使用的是更高版本的MySQL连接器/J,那么建议使用
com.MySQL.cj.jdbc.Driver
而不是
com.MySQL.jdbc.Driver

我更新了你的脚本

import groovy.sql.Sql

node('master'){
    Class.forName("com.mysql.cj.jdbc.Driver")
    def sql = Sql.newInstance("jdbc:mysql://10.10.115.38:3306/test", "root","123456", "com.mysql.cj.jdbc.Driver")
    def rows = sql.execute "select count(*) from test;"
    echo rows.dump()
}

从这里下载jar:

@juggao更改后仍然显示以前的错误。B Show java.lang.ClassNotFoundException:com.mysql.cj.jdbc.Driver.In pipeline,我不知道把jar放在哪里。@juggao抱歉,我不是DevOps人。我只能在java相关的方面提供帮助。研究JAR的放置位置和加载方式jenkins pipeline。第二个原因是不正确的,MySQL Connector/J 8.0.x仍然包含
com.MySQL.jdbc.Driver
类;加载时它只会打印一条警告,但仍会加载
com.mysql.cj.jdbc.Driver
。也就是说,建议切换到新的类名。MySQL连接器/J JAR文件不在类路径上,但自2007年以来就不再需要
Class.forName()
行。