【发布时间】:2021-07-20 00:22:41
【问题描述】:
我正在尝试在命令行上运行 java 程序,但显示此消息:
java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
然后我搜索了几个小时,大多数解决方案都是关于检查
- Java 版本,
- 导入 JDBC jar 并
- 编辑类路径
对于 1,我检查了我使用的 java 版本是 1.8
所以对于 2,我已经下载了 sqljdbc41.jar ,将 jar 放入 lib 文件夹,然后运行命令:
java -cp C://Testing/lib/* -classpath . sampleJava
对于 3,我已将类路径编辑为 C://Testing/lib/sqljdbc41.jar
有人知道我是否遗漏了某些东西,所以仍然显示相同的错误消息?
下面是我运行的示例程序:
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.Map;
public class sampleJava {
int x = 5;
public static void main(String[] args) {
sampleJava myObj = new sampleJava();
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}
catch (Exception e) {
System.err.println("Got an exception! ");
System.err.println(e.getMessage());
System.err.println(e);
System.out.println(e.toString());
e.printStackTrace();
}
finally {
System.out.println("Done");
}
System.out.println(myObj.x);
}
}
【问题讨论】:
-
您是否尝试过在类路径中使用反斜杠字符?即:
C:\Testing\lib\sqljdbc41.jar? -
谢谢。我在上面打了一个错字,我实际上是在使用 C:\Testing\lib\sqljdbc41.jar
-
与您的问题无关,但 sqljdbc41 适用于 Java 7,并且已经很老了。如需更新的驱动程序,请访问docs.microsoft.com/en-us/sql/connect/jdbc/…
标签: java sql-server jdbc cmd classpath