加载 JDBC 驱动程序中的 classNotFoundException
Posted
技术标签:
【中文标题】加载 JDBC 驱动程序中的 classNotFoundException【英文标题】:classNotFoundException in Loading JDBC Driver 【发布时间】:2011-12-10 18:19:46 【问题描述】:我是 Java 新手,我正在 Netbeans 6.9.1 IDE 上开发 Java EE 应用程序。我必须将我的 java 应用程序与 SQL Server 2005 连接。
为此,我已经下载了 sqljdbc.jar 文件并将其放入我系统上的C:\Program Files (x86)\Microsoft SQL Server\JDBC Drver\lib
,并在命令提示符下设置了它的类路径,如下所示
set classpath=.;C:\Program Files (x86)\Microsoft SQL Server\JDBC Drver\lib\sqljdbc.jar
并通过右键单击主项目并选择其属性选择库在 IDE 中设置类路径。然后在编译选项卡中添加了一个sqljdbc.jar
,但是当我执行这段代码时
import java.sql.*;
/**
*
* @author abc
*/
public class DBConnection
public Connection dbConnect(String db_connect_string)
try
Class.forName(
"com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection conn =
DriverManager.getConnection(db_connect_string);
System.out.println("connected");
return conn;
catch (Exception e)
System.out.println(e);
e.printStackTrace();
return null;
这行Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
给我ClassNotFound错误
【问题讨论】:
您的包裹中可能有错字。请尝试 'Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");' 【参考方案1】:您需要查看随您的 SQL 服务器版本一起提供的 JDBC 驱动程序文档。在旧的SQL Server 2000 中,JDBC 驱动程序类名称就像你拥有的那样:
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
不过,自从SQL Server 2005之后,微软更改了JDBC驱动类名:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
相应地修复它。
请注意,CLASSPATH
环境变量被 Netbeans 和所有其他体面的 Java 程序忽略。忘记它,甚至在你理解它为什么存在以及它的用途之前不要尝试设置它。
【讨论】:
【参考方案2】:你可以试试:
set classpath=.;"C:\Program Files (x86)\Microsoft SQL Server\JDBC Drver\lib\sqljdbc.jar"
如果没有,请尝试将名称中带有空格的文件夹替换为短名称。要获取短名称,请尝试
dir /-n
【讨论】:
【参考方案3】:如果您使用 Maven,可以尝试在 pom.xml 中添加以下内容:
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<version>4.0</version>
</dependency>
【讨论】:
以上是关于加载 JDBC 驱动程序中的 classNotFoundException的主要内容,如果未能解决你的问题,请参考以下文章
无法隔离 Scala 批量数据加载应用程序中的 JDBC 内存泄漏
Derby 在使用 Maven 时给出 ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver
Spring boot Oracle Gradle:无法加载驱动程序类:oracle.jdbc.OracleDriver