JDBC 程序中的 ClassNotFoundException 尽管添加了驱动程序的 JAR 文件
ClassNotFoundException in JDBC program despite of adding driver's JAR file
我正在 Java 中编写一个简单的程序,用于演示使用 JDBC 在 MySQL table 中插入数据。但是程序在注册驱动程序时生成 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());
}
}
}
我已经在同一目录中添加了驱动程序 JAR 文件。
编译程序:
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
1.at类路径的末尾好像多了一个分号:
/assignment/driver.jar;"
不用它试试
2. 您确定 driver.jar
是正确的文件吗?
通常他们被称为 mysql-connector-java-8.0.23.jar
注意: 问题是由 ; 在 driver.jar 末尾造成的,也没有使用完全限定路径.
Windows 基于 OS 使用 ; 分隔符而基于 Unix OS 使用 : 分隔符。
解法:
首先编译代码: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
,因为 class 已弃用。
我正在 Java 中编写一个简单的程序,用于演示使用 JDBC 在 MySQL table 中插入数据。但是程序在注册驱动程序时生成 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());
}
}
}
我已经在同一目录中添加了驱动程序 JAR 文件。
编译程序:
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
1.at类路径的末尾好像多了一个分号:
/assignment/driver.jar;"
不用它试试
2. 您确定 driver.jar
是正确的文件吗?
通常他们被称为 mysql-connector-java-8.0.23.jar
注意: 问题是由 ; 在 driver.jar 末尾造成的,也没有使用完全限定路径.
Windows 基于 OS 使用 ; 分隔符而基于 Unix OS 使用 : 分隔符。
解法:
首先编译代码:
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
,因为 class 已弃用。