如何解决尽管添加了驱动程序的 JAR 文件,但 JDBC 程序中的 ClassNotFoundException
我正在用 Java 编写一个简单的程序,用于演示使用 JDBC 在 MysqL 表中插入数据。但是程序在注册驱动程序时产生ClassNotFoundException。
import java.sql.*;
public class test {
public static void main(String[] args) {
try {
Class.forName("com.MysqL.jdbc.Driver");
}
catch(ClassNotFoundException e) {
System.out.println("ClassNotFoundException: "+e.getMessage());
}
}
}
编译程序:
javac -cp ".:~/Programs/D/friends/assignment/driver.jar;" test.java
执行程序:
java -cp ".:~/Programs/D/friends/assignment/driver.jar;" test
O/p:
ClassNotFoundException: com.MysqL.jdbc.Driver
解决方法
注意:该问题是由 ; 在 driver.jar 的末尾并且未使用完全限定路径引起的。
基于Windows 的操作系统 使用; 分隔符,而基于Unix 的操作系统 使用: 分隔符。
解决方案:
-
首先编译代码:
javac test.java
(运行这个命令) -
运行不带分号的代码:
java -cp .:<fully-qualified-path>/driver.jar test
示例输出:
anish@Anishs-MacBook-Pro ~ % javac Test.java
anish@Anishs-MacBook-Pro ~ % java -cp .:/Users/anish/driver.jar Test
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
注意:我正在使用 mysql-connector-8.0.15.jar。如果您使用相同或更高版本,则从 com.mysql.jdbc.Driver
更改为 com.mysql.cj.jdbc.Driver
,因为该类已被弃用。
1.在类路径的末尾似乎有一个额外的分号:/assignment/driver.jar;"
不用它试试
2. 您确定 driver.jar
是正确的文件吗?
通常它们被称为 mysql-connector-java-8.0.23.jar
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。