在Windows命令行中键入java.lang.ClassNotFoundException:com.mysql.cj.jdbc.Driver
javac src/*.java -d class -cp lib/*
java DBTest -cp lib/*
我也尝试使用com.mysql.cj.jdbc而不使用驱动程序。我将newInstance()添加到第11行,它是:
Class.forName("com.mysql.cj.jdbc.Driver").newInstance();
但没有变化。
由于不推荐使用,所以我也尝试了不带Class.forName()的尝试,但是我遇到了java.sql.SQLException:没有找到合适的驱动程序
mysql-connector-java-8.0.16.jar是lib中的唯一文件。我还尝试将其放在运行DBTest.java的文件夹中。我从命令行使用
设置Classpathset CLASSPATH = .
并通过高级系统设置创建环境变量CLASSPATH。然后,我尝试使用-cp和不使用-cp进行编译和运行,因为它应该检查jar文件的当前目录。
我也试图在eclipse中运行它,但是eclipse崩溃了,将不再打开。
import java.sql.*;
public class DBTest{
public static void main(String args[]) {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/employees", "root", "root");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from employees Limit 10");
while(rs.next()) {
System.out.println(rs.getInt(1) + " " + rs.getString(2) + " " + rs.getDouble(3));
}
con.close();
}catch(Exception e) {
System.out.println(e);
}
}
}
整个错误消息是 java.lang.ClassNotFoundException:com.mysql.cj.jdbc.Driver
答案 0 :(得分:1)
您以错误的顺序输入了java
的参数。将参数放在之后之后,类名会将这些参数传递给类的主方法,而不会设置类路径。
您需要将参数放在之前。另外,-d class
也不是java
的有效参数。简而言之,您需要使用:
java -cp class:lib/* DBTest