加载JDBC驱动程序中的classNotFoundException

我是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.jdbc.sqlserver.SQLServerDriver");

您需要检查随SQL Server版本一起提供的JDBC驱动程序文档。 在旧的SQL Server 2000中 ,JDBC驱动程序类名称与您一样:

 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 

但是,自SQL Server 2005以来,Microsoft更改了JDBC驱动程序类名:

 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 

相应地修复它。

请注意,Netbeans和所有其他不错的Java程序都会忽略 CLASSPATH环境变量。 忘记它,甚至不要尝试设置它,直到你理解它为什么存在以及它用于什么。

你能试一下吗:

 set classpath=.;"C:\Program Files (x86)\Microsoft SQL Server\JDBC Drver\lib\sqljdbc.jar" 

如果没有,请尝试使用短名称替换名称中带有空格的文件夹。 要获得短名称,请尝试

 dir /-n 

如果您使用Maven,可以尝试在pom.xml中添加以下内容:

  com.microsoft.sqlserver sqljdbc4 4.0