首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JDBS驱动程序: java.lang.ClassNotFoundException

JDBS驱动程序: java.lang.ClassNotFoundException
EN

Stack Overflow用户
提问于 2018-03-24 01:09:41
回答 2查看 765关注 0票数 3

当试图将数据加载到MySQL时,我得到了以下错误:

代码语言:javascript
复制
    ~/YCSB$ bin/ycsb load jdbc -P workloads/workloada -P db.properties
[WARN] Running against a source checkout. In order to get our runtime dependencies we'll have to invoke Maven. Depending on the state of your system, this may take ~30-45 seconds
[DEBUG] Running 'mvn -pl com.yahoo.ycsb:jdbc-binding -am package -DskipTests dependency:build-classpath -DincludeScope=compile -Dmdep.outputFilterFile=true'
/usr/lib/jvm/java-8-oracle/bin/java -cp /home/zakaria/YCSB/jdbc/conf:/home/zakaria/YCSB/jdbc/target/jdbc-binding-0.14.0-SNAPSHOT.jar:/home/zakaria/.m2/repository/org/apache/geronimo/specs/geronimo-jta_1.1_spec/1.1.1/geronimo-jta_1.1_spec-1.1.1.jar:/home/zakaria/.m2/repository/org/apache/htrace/htrace-core4/4.1.0-incubating/htrace-core4-4.1.0-incubating.jar:/home/zakaria/.m2/repository/net/sourceforge/serp/serp/1.13.1/serp-1.13.1.jar:/home/zakaria/.m2/repository/org/hdrhistogram/HdrHistogram/2.1.4/HdrHistogram-2.1.4.jar:/home/zakaria/.m2/repository/org/apache/openjpa/openjpa-jdbc/2.1.1/openjpa-jdbc-2.1.1.jar:/home/zakaria/.m2/repository/org/apache/geronimo/specs/geronimo-jms_1.1_spec/1.1.1/geronimo-jms_1.1_spec-1.1.1.jar:/home/zakaria/.m2/repository/org/apache/openjpa/openjpa-kernel/2.1.1/openjpa-kernel-2.1.1.jar:/home/zakaria/.m2/repository/org/codehaus/jackson/jackson-core-asl/1.9.4/jackson-core-asl-1.9.4.jar:/home/zakaria/.m2/repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar:/home/zakaria/.m2/repository/commons-lang/commons-lang/2.4/commons-lang-2.4.jar:/home/zakaria/YCSB/core/target/core-0.14.0-SNAPSHOT.jar:/home/zakaria/.m2/repository/org/codehaus/jackson/jackson-mapper-asl/1.9.4/jackson-mapper-asl-1.9.4.jar:/home/zakaria/.m2/repository/org/apache/openjpa/openjpa-lib/2.1.1/openjpa-lib-2.1.1.jar:/home/zakaria/.m2/repository/commons-pool/commons-pool/1.5.4/commons-pool-1.5.4.jar com.yahoo.ycsb.Client -db com.yahoo.ycsb.db.JdbcDBClient -P workloads/workloada -P db.properties -load
Command line: -db com.yahoo.ycsb.db.JdbcDBClient -P workloads/workloada -P db.properties -loadYCSB Client 0.14.0-SNAPSHOT

Loading workload...
Starting test.
Error in initializing the JDBS driver: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver  # The JDBC driver class to use.
com.yahoo.ycsb.DBException: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver # The JDBC driver class to use.
at com.yahoo.ycsb.db.JdbcDBClient.init(JdbcDBClient.java:220)
at com.yahoo.ycsb.DBWrapper.init(DBWrapper.java:86)
at com.yahoo.ycsb.ClientThread.run(Client.java:423)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver  # The JDBC driver class to use.
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.yahoo.ycsb.db.JdbcDBClient.init(JdbcDBClient.java:194)
... 3 more
com.yahoo.ycsb.DBException: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver # The JDBC driver class to use.
at com.yahoo.ycsb.db.JdbcDBClient.init(JdbcDBClient.java:220)
at com.yahoo.ycsb.DBWrapper.init(DBWrapper.java:86)
at com.yahoo.ycsb.ClientThread.run(Client.java:423)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver  # The JDBC driver class to use.
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.yahoo.ycsb.db.JdbcDBClient.init(JdbcDBClient.java:194)
... 3 more
[OVERALL], RunTime(ms), 5
[OVERALL], Throughput(ops/sec), 0.0
[TOTAL_GCS_PS_Scavenge], Count, 0
[TOTAL_GC_TIME_PS_Scavenge], Time(ms), 0
[TOTAL_GC_TIME_%PS_Scavenge], Time(%), 0.0
[TOTAL_GCS_PS_MarkSweep], Count, 0
[TOTAL_GC_TIME_PS_MarkSweep], Time(ms), 0
[TOTAL_GC_TIME%PS_MarkSweep], Time(%), 0.0
[TOTAL_GCs], Count, 0
[TOTAL_GC_TIME], Time(ms), 0
[TOTAL_GC_TIME%], Time(%), 0.0

我已将db.properties (在~/YCSB文件夹中)设置为:

代码语言:javascript
复制
db.driver=com.mysql.jdbc.Driver # The JDBC driver class to use.
db.url=jdbc:mysql://master:3306/ycsb # The Database connection URL.
db.user=root # User name for the connection.
db.passwd=

我已经在"~/YCSB/jdbc“中创建了lib文件夹,并将”mysql-连接器-java-5.1.46-bin.jar“放在那里。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-24 08:34:22

在属性文件中,#只表示一个注释,如果它是行上的第一个非空格字符。

来自Properties.load(Reader)

注释行具有ASCII '#''!'作为其第一个非空白字符;

错误消息包含了这个注释,这就说明了这一点:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver #要使用的JDBC驱动程序类.

换句话说,改变

代码语言:javascript
复制
db.driver=com.mysql.jdbc.Driver # The JDBC driver class to use.
db.url=jdbc:mysql://master:3306/ycsb # The Database connection URL.
db.user=root # User name for the connection.
db.passwd=

代码语言:javascript
复制
# The JDBC driver class to use.
db.driver=com.mysql.jdbc.Driver 
# The Database connection URL.
db.url=jdbc:mysql://master:3306/ycsb 
# User name for the connection.
db.user=root 
db.passwd=

或者完全删除注释。

票数 3
EN

Stack Overflow用户

发布于 2018-03-24 14:20:28

通过删除注释并在pom.xml ( /PATH/YCSB/jdbc路径)中添加以下依赖项,解决了这个问题:

代码语言:javascript
复制
<dependency>
      <groupId>com.mysql.driver</groupId>
      <artifactId>mysqldriver</artifactId>
      <version>5.1.46</version>
      <scope>system</scope>
      <systemPath>/PATH/YCSB/jdbc/lib/mysql-connector-java-5.1.46-bin.jar</systemPath>
</dependency> 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49460240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档